Skip to content

Remove Playwright MCP server until skills require it - #1200

Merged
Chris Harris (charris-msft) merged 1 commit into
mainfrom
fix/remove-playwright
Mar 9, 2026
Merged

Remove Playwright MCP server until skills require it#1200
Chris Harris (charris-msft) merged 1 commit into
mainfrom
fix/remove-playwright

Conversation

@charris-msft

Copy link
Copy Markdown
Contributor

Removes Playwright MCP server references since no current skills depend on it.

Changes:

  • Removed playwright entry from plugin/.mcp.jsonn- Removed Playwright tool probe from scripts/src/local/commands/test.tsn- Updated spec doc to reflect only Context7 MCP server

Copilot AI review requested due to automatic review settings March 9, 2026 15:52
@github-actions

github-actions Bot commented Mar 9, 2026

Copy link
Copy Markdown
Contributor

🔍 Token Analysis Report

@github-copilot-for-azure/scripts@1.0.0 tokens
node --import tsx src/tokens/cli.ts compare --base origin/main --head HEAD --markdown

📊 Token Change Report

Comparing origin/mainHEAD

Summary

Metric Value
📉 Total Change -4 tokens (0%)
Before 2,197 tokens
After 2,193 tokens
Files Changed 1

Changed Files

File Before After Change
docs/spec/azure-hosted-copilot-sdk.md 2,197 2,193 -4 (0%)

@github-copilot-for-azure/scripts@1.0.0 tokens
node --import tsx src/tokens/cli.ts check --markdown

📊 Token Limit Check Report

Checked: 459 files
Exceeded: 54 files

⚠️ Files Exceeding Token Limits

File Tokens Limit Over By
.github/skills/analyze-test-run/SKILL.md 1766 500 +1266
.github/skills/file-test-bug/SKILL.md 628 500 +128
.github/skills/sensei/README.md 3530 2000 +1530
.github/skills/sensei/SKILL.md 2382 500 +1882
.github/skills/sensei/references/EXAMPLES.md 3707 2000 +1707
.github/skills/sensei/references/LOOP.md 4181 2000 +2181
.github/skills/sensei/references/SCORING.md 3927 2000 +1927
.github/skills/skill-authoring/SKILL.md 817 500 +317
plugin/skills/appinsights-instrumentation/SKILL.md 908 500 +408
plugin/skills/azure-ai/SKILL.md 817 500 +317
plugin/skills/azure-aigateway/SKILL.md 1258 500 +758
plugin/skills/azure-aigateway/references/policies.md 2342 2000 +342
plugin/skills/azure-cloud-migrate/SKILL.md 501 500 +1
plugin/skills/azure-cloud-migrate/references/services/functions/lambda-to-functions.md 2600 2000 +600
plugin/skills/azure-cloud-migrate/references/services/functions/runtimes/javascript.md 2181 2000 +181
plugin/skills/azure-compliance/SKILL.md 1194 500 +694
plugin/skills/azure-compute/SKILL.md 2573 500 +2073
plugin/skills/azure-cost-optimization/SKILL.md 3468 500 +2968
plugin/skills/azure-deploy/SKILL.md 1356 500 +856
plugin/skills/azure-diagnostics/SKILL.md 1065 500 +565
plugin/skills/azure-hosted-copilot-sdk/SKILL.md 671 500 +171
plugin/skills/azure-kusto/SKILL.md 2175 500 +1675
plugin/skills/azure-messaging/SKILL.md 856 500 +356
plugin/skills/azure-prepare/SKILL.md 2164 500 +1664
plugin/skills/azure-prepare/references/aspire.md 2735 2000 +735
plugin/skills/azure-prepare/references/recipes/azd/terraform.md 3012 2000 +1012
plugin/skills/azure-prepare/references/security.md 2092 2000 +92
plugin/skills/azure-prepare/references/services/functions/bicep.md 2184 2000 +184
plugin/skills/azure-prepare/references/services/functions/templates/SPEC-composable-templates.md 6187 2000 +4187
plugin/skills/azure-prepare/references/services/functions/templates/recipes/composition.md 4649 2000 +2649
plugin/skills/azure-prepare/references/services/functions/terraform.md 2545 2000 +545
plugin/skills/azure-resource-lookup/SKILL.md 1389 500 +889
plugin/skills/azure-resource-visualizer/SKILL.md 2105 500 +1605
plugin/skills/azure-storage/SKILL.md 1180 500 +680
plugin/skills/azure-validate/SKILL.md 761 500 +261
plugin/skills/entra-app-registration/SKILL.md 2068 500 +1568
plugin/skills/entra-app-registration/references/api-permissions.md 2545 2000 +545
plugin/skills/entra-app-registration/references/cli-commands.md 2211 2000 +211
plugin/skills/entra-app-registration/references/console-app-example.md 2752 2000 +752
plugin/skills/entra-app-registration/references/oauth-flows.md 2375 2000 +375
plugin/skills/microsoft-foundry/SKILL.md 1789 500 +1289
plugin/skills/microsoft-foundry/foundry-agent/create/create.md 3016 2000 +1016
plugin/skills/microsoft-foundry/foundry-agent/deploy/deploy.md 4603 2000 +2603
plugin/skills/microsoft-foundry/foundry-agent/eval-datasets/references/trace-to-dataset.md 3548 2000 +1548
plugin/skills/microsoft-foundry/foundry-agent/trace/references/kql-templates.md 2450 2000 +450
plugin/skills/microsoft-foundry/models/deploy-model/SKILL.md 1640 500 +1140
plugin/skills/microsoft-foundry/models/deploy-model/capacity/SKILL.md 1739 500 +1239
plugin/skills/microsoft-foundry/models/deploy-model/customize/SKILL.md 2235 500 +1735
plugin/skills/microsoft-foundry/models/deploy-model/customize/references/customize-workflow.md 3335 2000 +1335
plugin/skills/microsoft-foundry/models/deploy-model/preset/SKILL.md 1226 500 +726
plugin/skills/microsoft-foundry/models/deploy-model/preset/references/preset-workflow.md 5534 2000 +3534
plugin/skills/microsoft-foundry/quota/quota.md 2129 2000 +129
plugin/skills/microsoft-foundry/quota/references/capacity-planning.md 2029 2000 +29
plugin/skills/microsoft-foundry/references/sdk/foundry-sdk-py.md 2162 2000 +162

Consider moving content to references/ subdirectories.


Automated token analysis. See skill authoring guidelines for best practices.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Removes references to the Playwright MCP server from local dev/test tooling and documentation, reflecting that the current set of skills no longer depends on it.

Changes:

  • Removed the Playwright MCP server entry from plugin/.mcp.json.
  • Removed the Playwright MCP tool probe from the local integration test command.
  • Updated the azure-hosted-copilot-sdk spec doc to no longer mention Playwright MCP.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.

File Description
scripts/src/local/commands/test.ts Drops the Playwright live MCP tool probe so local tests only probe currently configured/needed servers.
plugin/.mcp.json Removes the Playwright MCP server definition from the plugin MCP configuration.
docs/spec/azure-hosted-copilot-sdk.md Updates the feature status doc to reflect that Playwright MCP is no longer part of the MCP server setup referenced there.

@charris-msft
Chris Harris (charris-msft) merged commit 380a414 into main Mar 9, 2026
12 checks passed
@charris-msft
Chris Harris (charris-msft) deleted the fix/remove-playwright branch March 9, 2026 16:11
Luffy Chen (XOEEst) added a commit to XOEEst/GitHub-Copilot-for-Azure that referenced this pull request Mar 11, 2026
* Fix broken auto-create evaluators step in deploy/observe loop

The 'Auto-create evaluators & evaluation dataset' step was being skipped
when the monolithic agent-observability-loop skill was split into separate
deploy and observe skills. Neither skill owned the auto-create step,
causing post-deploy users to jump directly to evaluation.

Changes:
- deploy.md: Replace generic 'set up evaluation?' prompt with automatic
  6-step evaluator & dataset creation matching the reference behavior
- observe.md: Add Loop Overview, fix entry points to route post-deploy
  users through auto-setup, add evaluator existence check
- deploy-and-setup.md: Make auto-create primary content, demote deploy
  section to prerequisites

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add content tests for observe/deploy loop logic

Tests verify:
- observe.md has Loop Overview, post-deploy entry points, evaluator
  existence checks, behavioral rules, and all reference files
- deploy.md has auto-create evaluators section that is automatic (not
  optional), includes evaluator categories, LLM-judge, artifact
  persistence, and routes to observe skill Step 2
- deploy-and-setup.md has auto-create as primary content with proper
  evaluator selection, dataset generation, and user prompt

49 tests total (29 observe + 20 deploy), all passing.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore: trigger CI checks

* Fix

* add local dataset gen enforcement

* Merge

* feat: prefer monitor_resource_log_query and local datasets

- Replace azure-kusto delegation with monitor_resource_log_query for
  App Insights KQL queries in trace.md and troubleshoot.md
- Mark evaluation_dataset_create as not available (MCP upload not ready)
- Replace server-side dataset sections with local JSONL workflow
- Update mcp-gap-analysis.md to reflect practical tool availability

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: make dataset upload restriction more agent-proof

- Add Do NOT section at top of trace-to-dataset.md (before Overview)
- Add behavioral rule #7 to eval-datasets.md: never upload to cloud
- Remove Option A/B structure; Step 4 is now local JSONL only
- Eliminates subtle strikethrough formatting that agents miss

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Fix link

* fix: make auto-create evaluators an explicit numbered step

- Hosted workflow: add Step 10 after Step 9 with DO NOT stop gate
- Prompt workflow: add Step 5 after Step 4 with DO NOT stop gate
- Both link to existing After Deployment section as implementation
- Prevents agents from treating evaluator setup as optional appendix

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* feat: add dataset update loop with optimization guardrails

- Add Dataset Update Loop (eval→compare→analyze→optimize→re-eval)
  to dataset-versioning.md after Creating a New Version
- Add guardrails: never remove dataset rows or weaken evaluators
  to recover scores after dataset expansion
- Add same guardrail to observe optimize-deploy.md Step 6
- Add behavioral rule #8 to eval-datasets.md

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: add subscription parameter warning to trace-related skills

Always pass subscription explicitly to Azure MCP tools like
monitor_resource_log_query — they don't extract it from resource IDs.
Added to trace.md, troubleshoot.md, and trace-to-dataset.md.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: make customEvents-to-traces eval correlation more obvious

- Add Key Concept section to trace-to-dataset.md explaining that
  eval results live in customEvents (not dependencies) and the
  join key is gen_ai.response.id
- Add table showing dependencies vs customEvents join pattern
- Cross-reference trace skill's eval-correlation.md from both
  trace-to-dataset.md and eval-datasets.md Related Skills

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: improve cross-references and add KQL parse_json warning

1. Add parse_json(customDimensions) warning to Do NOT section
2. Add Related References section with skill-root paths
3. Add skill-root path hints to all cross-skill links
4. Add observe + trace to SKILL.md sub-skill routing table

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: improve hosted agent KQL patterns and content extraction

- Add Hosted Agent Harvest template (requests→dependencies join)
- Fix Hosted Agent Attributes: appear on both requests and traces
- Add gen_ai.agent.name duality callout (Foundry name vs class name)
- Remove incorrect azure.ai.agentserver.agent_name fallback from dependencies queries
- Document gen_ai.input.messages/gen_ai.output.messages as content source
- Add operation_ParentId join example to Span Correlation section
- Update search-traces.md hosted agent query to use requests entry point

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: improve trace sub-skills for hosted agent KQL patterns

- search-traces: fix hosted agent query to group by operation_ParentId
- conversation-detail: add content extraction from invoke_agent spans
  (gen_ai.input.messages / gen_ai.output.messages)
- analyze-failures: add hosted agent gen_ai.agent.name duality warning
  and hosted agent variant query using requests→dependencies join
- analyze-latency: same hosted agent warning and variant query
- kql-templates: expand requests table description as preferred entry
  point; add gen_ai.input/output.messages to attributes table
- trace.md: reword rule 6 to clarify hosted vs prompt agent filtering

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: restore routing keywords and update trigger snapshots

- Add back critical routing keywords to SKILL.md description (578→779 chars):
  role assignment, permissions, capacity, region, deployment failure,
  AI Services, Cognitive Services, provision, knowledge index,
  monitoring, customize, onboard, availability
- Update trigger test snapshots for new keyword set (24 snapshots)
- Fix deploy trigger test: Docker IS our capability (remove false negative)
- Fix customize-deployment tests: ensure prompts have ≥2 keyword matches
- Fix deploy-model-optimal-region tests: use longer prompts for HA/PTU

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: add 'create AI Services' to description for resource/create test

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore: bump microsoft-foundry version to 1.0.2

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* feat(eval-datasets): enable Foundry dataset sync via MCP tools

- Add Step 5 (Sync to Foundry) to trace-to-dataset pipeline using
  evaluation_dataset_create with connectionName and project_connection tools
- Add server-side version discovery via evaluation_dataset_versions_get
- Add dual experiment types to dataset-comparison (agent vs dataset comparison)
- Update mcp-gap-analysis: mark resolved tools, update workarounds
- Add AzureBlob to project connections reference
- Bump microsoft-foundry version to 1.0.3
- Fix upstream section heading changes in unit tests
- Update trigger snapshots for upstream keyword changes

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* refactor(dataset-comparison): focus on dataset-version comparison only

Remove agent comparison experiment type from dataset-comparison flow.
Agent comparison belongs in the observe/eval loop, not the dataset skill.
Update all examples to use dataset versions as baseline/treatment.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Remove Playwright MCP server until skills require it (microsoft#1200)

* Collapse token analysis comment (microsoft#1147)

* update region-availability in prepare/validate/deploy skill (microsoft#1083)

* update region-availability in prepare/deploy skill

* update

* update

* fix

* update date

* Update plugin/skills/azure-deploy/references/region-availability.md

* fix ci failure

* bump version

* build(deps): bump @github/copilot and @github/copilot-sdk in /tests (microsoft#1201)

Bumps [@github/copilot](https://github.com/github/copilot-cli) to 1.0.2 and updates ancestor dependency [@github/copilot-sdk](https://github.com/github/copilot-sdk). These dependencies need to be updated together.


Updates `@github/copilot` from 0.0.414 to 1.0.2
- [Release notes](https://github.com/github/copilot-cli/releases)
- [Changelog](https://github.com/github/copilot-cli/blob/main/changelog.md)
- [Commits](github/copilot-cli@v0.0.414...v1.0.2)

Updates `@github/copilot-sdk` from 0.1.26 to 0.1.32
- [Release notes](https://github.com/github/copilot-sdk/releases)
- [Changelog](https://github.com/github/copilot-sdk/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/copilot-sdk/commits/v0.1.32)

---
updated-dependencies:
- dependency-name: "@github/copilot"
  dependency-version: 1.0.2
  dependency-type: indirect
- dependency-name: "@github/copilot-sdk"
  dependency-version: 0.1.32
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* specify application path in prompt (microsoft#1204)

* Add AVM (Azure Verified Modules) integration tests (microsoft#1171)

* Add AVM (Azure Verified Modules) integration tests

Add 3 integration tests validating the AVM module selection hierarchy
for Bicep infrastructure generation:

- avm-module-priority: Verifies AVM modules prioritized over non-AVM
- avm-fallback-behavior: Verifies fallback stays within AVM ecosystem
- avm-azd-pattern-preference: Verifies AZD pattern modules preferred

Tests validate that the azure-deploy skill enforces the mandatory
AVM selection order: Pattern modules > Resource modules > Utility
modules, and never falls back to non-AVM alternatives.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add output assertions to AVM integration tests

Address Copilot review feedback: add keyword-based output
assertions using getAllAssistantMessages/getAllToolText to
verify agent responses contain AVM hierarchy terms, not just
skill invocation. Includes non-AVM fallback negative check.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Strengthen AVM test output assertions per Copilot review

- Split keyword checks into critical-term + context assertions
- Add resource-before-utility ordering assertion for fallback test
- Expand non-AVM negative check to use regex patterns
- Require core keywords (avm+pattern, azd+pattern) explicitly

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: address Copilot round 3 — ordering assertions and context-aware non-AVM check

- Add hierarchy ordering assertion to test 1 (pattern before resource/utility)
- Make non-AVM detection context-aware: skip matches preceded by negation words
  (e.g., 'never fall back to non-AVM' is correct behavior, not a false positive)
- Add pattern-before-resource ordering assertion to test 3 (AZD pattern preference)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* refactor: move AVM integration tests to avm/ subdirectory

Move tests/azure-deploy/avm-integration.test.ts to
tests/azure-deploy/avm/integration.test.ts so the file matches the
**/integration.test.ts glob used by the custom ESLint rule
(integration-test-name) and follows the subdirectory convention
established by tests/microsoft-foundry/ (e.g. foundry-agent/).

Import paths updated from ../utils/ to ../../utils/ to reflect the
new depth.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: address round 4 Copilot review feedback

- Add 'fall back'/'fall-back' keyword variants for resilience
- Extend non-AVM negation check to also scan following context
- Use regex for AZD ordering assertion to match plural/prefixed variants

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Update github workflows to use best practices (microsoft#1149)

* Early terminate azure-deploy, azure-validate tests (microsoft#1205)

Add comment for early termination to help AI grader

* Replace script inline parameters with env var (microsoft#1209)

* Early terminate azure-deploy tests on deploy link (microsoft#1208)

* Early terminate azure-deploy tests on deploy link

* Fix lint issue

* Reduce char count of existing skills (microsoft#1210)

* Reduce char count of existing skills

* Update ci tests and snapshots

* Enhance benchmark ci run script (microsoft#1176)

* Add msbench_benchmarks repo clone to get model definition

* Remove unused vars

* Use mcp-pr repo before MI has access to msbench-benchmarks repo

* Address copilot feedback

* Change back to msbench-benchmarks repo

* Get ADO token for repo clone

* Fix line continuation character

* Add run for all interested models

* Extract run IDs

* Fix yaml format issue

* Schedule it to run nightly

* Address copilot feedbacks

* formalize .foundry and multi-environment support

* fix

* Feature/azure quotas (microsoft#1137)

* update for using azure-quotas in skill

* test update

* unit test update

* path update

* add skill in skills.json

* skills.json update

* reduce the text

* version update

* skill version

* skill description update

* reduce text size

* 1.0.4 for next prepare version

* upload snap shot

* update version

* test update

---------

Co-authored-by: Yinghui Dong <yinghuidong@microsoft.com>

* build(deps-dev): bump simple-git from 3.30.0 to 3.32.3 in /tests (microsoft#1213)

Bumps [simple-git](https://github.com/steveukx/git-js/tree/HEAD/simple-git) from 3.30.0 to 3.32.3.
- [Release notes](https://github.com/steveukx/git-js/releases)
- [Changelog](https://github.com/steveukx/git-js/blob/main/simple-git/CHANGELOG.md)
- [Commits](https://github.com/steveukx/git-js/commits/simple-git@3.32.3/simple-git)

---
updated-dependencies:
- dependency-name: simple-git
  dependency-version: 3.32.3
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Improve azure-compliance invocation rate (microsoft#1214)

* Improve azure-compliance invocation rate

* Race condition free report writing

* Fix debug logging for report location

* Bump skill version

* Fix suffix base value

* fix

* llm judge model and eval group improvement

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Chris Harris <charris@microsoft.com>
Co-authored-by: JasonYeMSFT <chuye@microsoft.com>
Co-authored-by: xfz11 <81600993+xfz11@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Juan Ospina <70209456+jeo02@users.noreply.github.com>
Co-authored-by: Jon Gallant <2163001+jongio@users.noreply.github.com>
Co-authored-by: Wes Haggard <weshaggard@users.noreply.github.com>
Co-authored-by: Fan Yang <52458914+fanyang-mono@users.noreply.github.com>
Co-authored-by: rakal-dyh <33503911+rakal-dyh@users.noreply.github.com>
Co-authored-by: Yinghui Dong <yinghuidong@microsoft.com>
Luffy Chen (XOEEst) added a commit to XOEEst/GitHub-Copilot-for-Azure that referenced this pull request Mar 11, 2026
* Fix broken auto-create evaluators step in deploy/observe loop

The 'Auto-create evaluators & evaluation dataset' step was being skipped
when the monolithic agent-observability-loop skill was split into separate
deploy and observe skills. Neither skill owned the auto-create step,
causing post-deploy users to jump directly to evaluation.

Changes:
- deploy.md: Replace generic 'set up evaluation?' prompt with automatic
  6-step evaluator & dataset creation matching the reference behavior
- observe.md: Add Loop Overview, fix entry points to route post-deploy
  users through auto-setup, add evaluator existence check
- deploy-and-setup.md: Make auto-create primary content, demote deploy
  section to prerequisites

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add content tests for observe/deploy loop logic

Tests verify:
- observe.md has Loop Overview, post-deploy entry points, evaluator
  existence checks, behavioral rules, and all reference files
- deploy.md has auto-create evaluators section that is automatic (not
  optional), includes evaluator categories, LLM-judge, artifact
  persistence, and routes to observe skill Step 2
- deploy-and-setup.md has auto-create as primary content with proper
  evaluator selection, dataset generation, and user prompt

49 tests total (29 observe + 20 deploy), all passing.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore: trigger CI checks

* Fix

* add local dataset gen enforcement

* Merge

* feat: prefer monitor_resource_log_query and local datasets

- Replace azure-kusto delegation with monitor_resource_log_query for
  App Insights KQL queries in trace.md and troubleshoot.md
- Mark evaluation_dataset_create as not available (MCP upload not ready)
- Replace server-side dataset sections with local JSONL workflow
- Update mcp-gap-analysis.md to reflect practical tool availability

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: make dataset upload restriction more agent-proof

- Add Do NOT section at top of trace-to-dataset.md (before Overview)
- Add behavioral rule #7 to eval-datasets.md: never upload to cloud
- Remove Option A/B structure; Step 4 is now local JSONL only
- Eliminates subtle strikethrough formatting that agents miss

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Fix link

* fix: make auto-create evaluators an explicit numbered step

- Hosted workflow: add Step 10 after Step 9 with DO NOT stop gate
- Prompt workflow: add Step 5 after Step 4 with DO NOT stop gate
- Both link to existing After Deployment section as implementation
- Prevents agents from treating evaluator setup as optional appendix

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* feat: add dataset update loop with optimization guardrails

- Add Dataset Update Loop (eval→compare→analyze→optimize→re-eval)
  to dataset-versioning.md after Creating a New Version
- Add guardrails: never remove dataset rows or weaken evaluators
  to recover scores after dataset expansion
- Add same guardrail to observe optimize-deploy.md Step 6
- Add behavioral rule #8 to eval-datasets.md

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: add subscription parameter warning to trace-related skills

Always pass subscription explicitly to Azure MCP tools like
monitor_resource_log_query — they don't extract it from resource IDs.
Added to trace.md, troubleshoot.md, and trace-to-dataset.md.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: make customEvents-to-traces eval correlation more obvious

- Add Key Concept section to trace-to-dataset.md explaining that
  eval results live in customEvents (not dependencies) and the
  join key is gen_ai.response.id
- Add table showing dependencies vs customEvents join pattern
- Cross-reference trace skill's eval-correlation.md from both
  trace-to-dataset.md and eval-datasets.md Related Skills

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: improve cross-references and add KQL parse_json warning

1. Add parse_json(customDimensions) warning to Do NOT section
2. Add Related References section with skill-root paths
3. Add skill-root path hints to all cross-skill links
4. Add observe + trace to SKILL.md sub-skill routing table

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: improve hosted agent KQL patterns and content extraction

- Add Hosted Agent Harvest template (requests→dependencies join)
- Fix Hosted Agent Attributes: appear on both requests and traces
- Add gen_ai.agent.name duality callout (Foundry name vs class name)
- Remove incorrect azure.ai.agentserver.agent_name fallback from dependencies queries
- Document gen_ai.input.messages/gen_ai.output.messages as content source
- Add operation_ParentId join example to Span Correlation section
- Update search-traces.md hosted agent query to use requests entry point

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: improve trace sub-skills for hosted agent KQL patterns

- search-traces: fix hosted agent query to group by operation_ParentId
- conversation-detail: add content extraction from invoke_agent spans
  (gen_ai.input.messages / gen_ai.output.messages)
- analyze-failures: add hosted agent gen_ai.agent.name duality warning
  and hosted agent variant query using requests→dependencies join
- analyze-latency: same hosted agent warning and variant query
- kql-templates: expand requests table description as preferred entry
  point; add gen_ai.input/output.messages to attributes table
- trace.md: reword rule 6 to clarify hosted vs prompt agent filtering

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: restore routing keywords and update trigger snapshots

- Add back critical routing keywords to SKILL.md description (578→779 chars):
  role assignment, permissions, capacity, region, deployment failure,
  AI Services, Cognitive Services, provision, knowledge index,
  monitoring, customize, onboard, availability
- Update trigger test snapshots for new keyword set (24 snapshots)
- Fix deploy trigger test: Docker IS our capability (remove false negative)
- Fix customize-deployment tests: ensure prompts have ≥2 keyword matches
- Fix deploy-model-optimal-region tests: use longer prompts for HA/PTU

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: add 'create AI Services' to description for resource/create test

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore: bump microsoft-foundry version to 1.0.2

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* feat(eval-datasets): enable Foundry dataset sync via MCP tools

- Add Step 5 (Sync to Foundry) to trace-to-dataset pipeline using
  evaluation_dataset_create with connectionName and project_connection tools
- Add server-side version discovery via evaluation_dataset_versions_get
- Add dual experiment types to dataset-comparison (agent vs dataset comparison)
- Update mcp-gap-analysis: mark resolved tools, update workarounds
- Add AzureBlob to project connections reference
- Bump microsoft-foundry version to 1.0.3
- Fix upstream section heading changes in unit tests
- Update trigger snapshots for upstream keyword changes

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* refactor(dataset-comparison): focus on dataset-version comparison only

Remove agent comparison experiment type from dataset-comparison flow.
Agent comparison belongs in the observe/eval loop, not the dataset skill.
Update all examples to use dataset versions as baseline/treatment.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Remove Playwright MCP server until skills require it (microsoft#1200)

* Collapse token analysis comment (microsoft#1147)

* update region-availability in prepare/validate/deploy skill (microsoft#1083)

* update region-availability in prepare/deploy skill

* update

* update

* fix

* update date

* Update plugin/skills/azure-deploy/references/region-availability.md

* fix ci failure

* bump version

* build(deps): bump @github/copilot and @github/copilot-sdk in /tests (microsoft#1201)

Bumps [@github/copilot](https://github.com/github/copilot-cli) to 1.0.2 and updates ancestor dependency [@github/copilot-sdk](https://github.com/github/copilot-sdk). These dependencies need to be updated together.

Updates `@github/copilot` from 0.0.414 to 1.0.2
- [Release notes](https://github.com/github/copilot-cli/releases)
- [Changelog](https://github.com/github/copilot-cli/blob/main/changelog.md)
- [Commits](github/copilot-cli@v0.0.414...v1.0.2)

Updates `@github/copilot-sdk` from 0.1.26 to 0.1.32
- [Release notes](https://github.com/github/copilot-sdk/releases)
- [Changelog](https://github.com/github/copilot-sdk/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/copilot-sdk/commits/v0.1.32)

---
updated-dependencies:
- dependency-name: "@github/copilot"
  dependency-version: 1.0.2
  dependency-type: indirect
- dependency-name: "@github/copilot-sdk"
  dependency-version: 0.1.32
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* specify application path in prompt (microsoft#1204)

* Add AVM (Azure Verified Modules) integration tests (microsoft#1171)

* Add AVM (Azure Verified Modules) integration tests

Add 3 integration tests validating the AVM module selection hierarchy
for Bicep infrastructure generation:

- avm-module-priority: Verifies AVM modules prioritized over non-AVM
- avm-fallback-behavior: Verifies fallback stays within AVM ecosystem
- avm-azd-pattern-preference: Verifies AZD pattern modules preferred

Tests validate that the azure-deploy skill enforces the mandatory
AVM selection order: Pattern modules > Resource modules > Utility
modules, and never falls back to non-AVM alternatives.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add output assertions to AVM integration tests

Address Copilot review feedback: add keyword-based output
assertions using getAllAssistantMessages/getAllToolText to
verify agent responses contain AVM hierarchy terms, not just
skill invocation. Includes non-AVM fallback negative check.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Strengthen AVM test output assertions per Copilot review

- Split keyword checks into critical-term + context assertions
- Add resource-before-utility ordering assertion for fallback test
- Expand non-AVM negative check to use regex patterns
- Require core keywords (avm+pattern, azd+pattern) explicitly

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: address Copilot round 3 — ordering assertions and context-aware non-AVM check

- Add hierarchy ordering assertion to test 1 (pattern before resource/utility)
- Make non-AVM detection context-aware: skip matches preceded by negation words
  (e.g., 'never fall back to non-AVM' is correct behavior, not a false positive)
- Add pattern-before-resource ordering assertion to test 3 (AZD pattern preference)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* refactor: move AVM integration tests to avm/ subdirectory

Move tests/azure-deploy/avm-integration.test.ts to
tests/azure-deploy/avm/integration.test.ts so the file matches the
**/integration.test.ts glob used by the custom ESLint rule
(integration-test-name) and follows the subdirectory convention
established by tests/microsoft-foundry/ (e.g. foundry-agent/).

Import paths updated from ../utils/ to ../../utils/ to reflect the
new depth.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: address round 4 Copilot review feedback

- Add 'fall back'/'fall-back' keyword variants for resilience
- Extend non-AVM negation check to also scan following context
- Use regex for AZD ordering assertion to match plural/prefixed variants

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Update github workflows to use best practices (microsoft#1149)

* Early terminate azure-deploy, azure-validate tests (microsoft#1205)

Add comment for early termination to help AI grader

* Replace script inline parameters with env var (microsoft#1209)

* Early terminate azure-deploy tests on deploy link (microsoft#1208)

* Early terminate azure-deploy tests on deploy link

* Fix lint issue

* Reduce char count of existing skills (microsoft#1210)

* Reduce char count of existing skills

* Update ci tests and snapshots

* Enhance benchmark ci run script (microsoft#1176)

* Add msbench_benchmarks repo clone to get model definition

* Remove unused vars

* Use mcp-pr repo before MI has access to msbench-benchmarks repo

* Address copilot feedback

* Change back to msbench-benchmarks repo

* Get ADO token for repo clone

* Fix line continuation character

* Add run for all interested models

* Extract run IDs

* Fix yaml format issue

* Schedule it to run nightly

* Address copilot feedbacks

* formalize .foundry and multi-environment support

* fix

* Feature/azure quotas (microsoft#1137)

* update for using azure-quotas in skill

* test update

* unit test update

* path update

* add skill in skills.json

* skills.json update

* reduce the text

* version update

* skill version

* skill description update

* reduce text size

* 1.0.4 for next prepare version

* upload snap shot

* update version

* test update

---------

Co-authored-by: Yinghui Dong <yinghuidong@microsoft.com>

* build(deps-dev): bump simple-git from 3.30.0 to 3.32.3 in /tests (microsoft#1213)

Bumps [simple-git](https://github.com/steveukx/git-js/tree/HEAD/simple-git) from 3.30.0 to 3.32.3.
- [Release notes](https://github.com/steveukx/git-js/releases)
- [Changelog](https://github.com/steveukx/git-js/blob/main/simple-git/CHANGELOG.md)
- [Commits](https://github.com/steveukx/git-js/commits/simple-git@3.32.3/simple-git)

---
updated-dependencies:
- dependency-name: simple-git
  dependency-version: 3.32.3
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Improve azure-compliance invocation rate (microsoft#1214)

* Improve azure-compliance invocation rate

* Race condition free report writing

* Fix debug logging for report location

* Bump skill version

* Fix suffix base value

* fix

* llm judge model and eval group improvement

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Chris Harris <charris@microsoft.com>
Co-authored-by: JasonYeMSFT <chuye@microsoft.com>
Co-authored-by: xfz11 <81600993+xfz11@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Juan Ospina <70209456+jeo02@users.noreply.github.com>
Co-authored-by: Jon Gallant <2163001+jongio@users.noreply.github.com>
Co-authored-by: Wes Haggard <weshaggard@users.noreply.github.com>
Co-authored-by: Fan Yang <52458914+fanyang-mono@users.noreply.github.com>
Co-authored-by: rakal-dyh <33503911+rakal-dyh@users.noreply.github.com>
Co-authored-by: Yinghui Dong <yinghuidong@microsoft.com>
JasonYeMSFT (JasonYeMSFT) added a commit that referenced this pull request Mar 13, 2026
…and more. (#1219)

* Fix Issue Triage workflow: add `github.token` fallback for missing `COPILOT_GITHUB_TOKEN` (#6)

* Initial plan

* Fix issue triage workflow: add github.token fallback for COPILOT_GITHUB_TOKEN

The Issue Triage workflow was failing at the secret validation step because
COPILOT_GITHUB_TOKEN was not configured. This adds github.token as a fallback
in all 4 places where COPILOT_GITHUB_TOKEN is used for authentication:
- agent job: validate-secret step and Execute step
- detection job: validate-secret step and Execute step

This is consistent with the existing fallback patterns in the workflow
(e.g., secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN || secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN)

Co-authored-by: XOEEst <18523445+XOEEst@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: XOEEst <18523445+XOEEst@users.noreply.github.com>

* Fix/observe deploy loop logic (#7)

* Fix broken auto-create evaluators step in deploy/observe loop

The 'Auto-create evaluators & evaluation dataset' step was being skipped
when the monolithic agent-observability-loop skill was split into separate
deploy and observe skills. Neither skill owned the auto-create step,
causing post-deploy users to jump directly to evaluation.

Changes:
- deploy.md: Replace generic 'set up evaluation?' prompt with automatic
  6-step evaluator & dataset creation matching the reference behavior
- observe.md: Add Loop Overview, fix entry points to route post-deploy
  users through auto-setup, add evaluator existence check
- deploy-and-setup.md: Make auto-create primary content, demote deploy
  section to prerequisites

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add content tests for observe/deploy loop logic

Tests verify:
- observe.md has Loop Overview, post-deploy entry points, evaluator
  existence checks, behavioral rules, and all reference files
- deploy.md has auto-create evaluators section that is automatic (not
  optional), includes evaluator categories, LLM-judge, artifact
  persistence, and routes to observe skill Step 2
- deploy-and-setup.md has auto-create as primary content with proper
  evaluator selection, dataset generation, and user prompt

49 tests total (29 observe + 20 deploy), all passing.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore: trigger CI checks

* Fix

* add local dataset gen enforcement

* Merge

* feat: prefer monitor_resource_log_query and local datasets

- Replace azure-kusto delegation with monitor_resource_log_query for
  App Insights KQL queries in trace.md and troubleshoot.md
- Mark evaluation_dataset_create as not available (MCP upload not ready)
- Replace server-side dataset sections with local JSONL workflow
- Update mcp-gap-analysis.md to reflect practical tool availability

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: make dataset upload restriction more agent-proof

- Add Do NOT section at top of trace-to-dataset.md (before Overview)
- Add behavioral rule #7 to eval-datasets.md: never upload to cloud
- Remove Option A/B structure; Step 4 is now local JSONL only
- Eliminates subtle strikethrough formatting that agents miss

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Fix link

* fix: make auto-create evaluators an explicit numbered step

- Hosted workflow: add Step 10 after Step 9 with DO NOT stop gate
- Prompt workflow: add Step 5 after Step 4 with DO NOT stop gate
- Both link to existing After Deployment section as implementation
- Prevents agents from treating evaluator setup as optional appendix

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* feat: add dataset update loop with optimization guardrails

- Add Dataset Update Loop (eval→compare→analyze→optimize→re-eval)
  to dataset-versioning.md after Creating a New Version
- Add guardrails: never remove dataset rows or weaken evaluators
  to recover scores after dataset expansion
- Add same guardrail to observe optimize-deploy.md Step 6
- Add behavioral rule #8 to eval-datasets.md

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: add subscription parameter warning to trace-related skills

Always pass subscription explicitly to Azure MCP tools like
monitor_resource_log_query — they don't extract it from resource IDs.
Added to trace.md, troubleshoot.md, and trace-to-dataset.md.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: make customEvents-to-traces eval correlation more obvious

- Add Key Concept section to trace-to-dataset.md explaining that
  eval results live in customEvents (not dependencies) and the
  join key is gen_ai.response.id
- Add table showing dependencies vs customEvents join pattern
- Cross-reference trace skill's eval-correlation.md from both
  trace-to-dataset.md and eval-datasets.md Related Skills

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: improve cross-references and add KQL parse_json warning

1. Add parse_json(customDimensions) warning to Do NOT section
2. Add Related References section with skill-root paths
3. Add skill-root path hints to all cross-skill links
4. Add observe + trace to SKILL.md sub-skill routing table

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: improve hosted agent KQL patterns and content extraction

- Add Hosted Agent Harvest template (requests→dependencies join)
- Fix Hosted Agent Attributes: appear on both requests and traces
- Add gen_ai.agent.name duality callout (Foundry name vs class name)
- Remove incorrect azure.ai.agentserver.agent_name fallback from dependencies queries
- Document gen_ai.input.messages/gen_ai.output.messages as content source
- Add operation_ParentId join example to Span Correlation section
- Update search-traces.md hosted agent query to use requests entry point

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: improve trace sub-skills for hosted agent KQL patterns

- search-traces: fix hosted agent query to group by operation_ParentId
- conversation-detail: add content extraction from invoke_agent spans
  (gen_ai.input.messages / gen_ai.output.messages)
- analyze-failures: add hosted agent gen_ai.agent.name duality warning
  and hosted agent variant query using requests→dependencies join
- analyze-latency: same hosted agent warning and variant query
- kql-templates: expand requests table description as preferred entry
  point; add gen_ai.input/output.messages to attributes table
- trace.md: reword rule 6 to clarify hosted vs prompt agent filtering

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: restore routing keywords and update trigger snapshots

- Add back critical routing keywords to SKILL.md description (578→779 chars):
  role assignment, permissions, capacity, region, deployment failure,
  AI Services, Cognitive Services, provision, knowledge index,
  monitoring, customize, onboard, availability
- Update trigger test snapshots for new keyword set (24 snapshots)
- Fix deploy trigger test: Docker IS our capability (remove false negative)
- Fix customize-deployment tests: ensure prompts have ≥2 keyword matches
- Fix deploy-model-optimal-region tests: use longer prompts for HA/PTU

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: add 'create AI Services' to description for resource/create test

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore: bump microsoft-foundry version to 1.0.2

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* feat(eval-datasets): enable Foundry dataset sync via MCP tools

- Add Step 5 (Sync to Foundry) to trace-to-dataset pipeline using
  evaluation_dataset_create with connectionName and project_connection tools
- Add server-side version discovery via evaluation_dataset_versions_get
- Add dual experiment types to dataset-comparison (agent vs dataset comparison)
- Update mcp-gap-analysis: mark resolved tools, update workarounds
- Add AzureBlob to project connections reference
- Bump microsoft-foundry version to 1.0.3
- Fix upstream section heading changes in unit tests
- Update trigger snapshots for upstream keyword changes

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* refactor(dataset-comparison): focus on dataset-version comparison only

Remove agent comparison experiment type from dataset-comparison flow.
Agent comparison belongs in the observe/eval loop, not the dataset skill.
Update all examples to use dataset versions as baseline/treatment.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Remove Playwright MCP server until skills require it (#1200)

* Collapse token analysis comment (#1147)

* update region-availability in prepare/validate/deploy skill (#1083)

* update region-availability in prepare/deploy skill

* update

* update

* fix

* update date

* Update plugin/skills/azure-deploy/references/region-availability.md

* fix ci failure

* bump version

* build(deps): bump @github/copilot and @github/copilot-sdk in /tests (#1201)

Bumps [@github/copilot](https://github.com/github/copilot-cli) to 1.0.2 and updates ancestor dependency [@github/copilot-sdk](https://github.com/github/copilot-sdk). These dependencies need to be updated together.

Updates `@github/copilot` from 0.0.414 to 1.0.2
- [Release notes](https://github.com/github/copilot-cli/releases)
- [Changelog](https://github.com/github/copilot-cli/blob/main/changelog.md)
- [Commits](github/copilot-cli@v0.0.414...v1.0.2)

Updates `@github/copilot-sdk` from 0.1.26 to 0.1.32
- [Release notes](https://github.com/github/copilot-sdk/releases)
- [Changelog](https://github.com/github/copilot-sdk/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/copilot-sdk/commits/v0.1.32)

---
updated-dependencies:
- dependency-name: "@github/copilot"
  dependency-version: 1.0.2
  dependency-type: indirect
- dependency-name: "@github/copilot-sdk"
  dependency-version: 0.1.32
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* specify application path in prompt (#1204)

* Add AVM (Azure Verified Modules) integration tests (#1171)

* Add AVM (Azure Verified Modules) integration tests

Add 3 integration tests validating the AVM module selection hierarchy
for Bicep infrastructure generation:

- avm-module-priority: Verifies AVM modules prioritized over non-AVM
- avm-fallback-behavior: Verifies fallback stays within AVM ecosystem
- avm-azd-pattern-preference: Verifies AZD pattern modules preferred

Tests validate that the azure-deploy skill enforces the mandatory
AVM selection order: Pattern modules > Resource modules > Utility
modules, and never falls back to non-AVM alternatives.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add output assertions to AVM integration tests

Address Copilot review feedback: add keyword-based output
assertions using getAllAssistantMessages/getAllToolText to
verify agent responses contain AVM hierarchy terms, not just
skill invocation. Includes non-AVM fallback negative check.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Strengthen AVM test output assertions per Copilot review

- Split keyword checks into critical-term + context assertions
- Add resource-before-utility ordering assertion for fallback test
- Expand non-AVM negative check to use regex patterns
- Require core keywords (avm+pattern, azd+pattern) explicitly

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: address Copilot round 3 — ordering assertions and context-aware non-AVM check

- Add hierarchy ordering assertion to test 1 (pattern before resource/utility)
- Make non-AVM detection context-aware: skip matches preceded by negation words
  (e.g., 'never fall back to non-AVM' is correct behavior, not a false positive)
- Add pattern-before-resource ordering assertion to test 3 (AZD pattern preference)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* refactor: move AVM integration tests to avm/ subdirectory

Move tests/azure-deploy/avm-integration.test.ts to
tests/azure-deploy/avm/integration.test.ts so the file matches the
**/integration.test.ts glob used by the custom ESLint rule
(integration-test-name) and follows the subdirectory convention
established by tests/microsoft-foundry/ (e.g. foundry-agent/).

Import paths updated from ../utils/ to ../../utils/ to reflect the
new depth.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: address round 4 Copilot review feedback

- Add 'fall back'/'fall-back' keyword variants for resilience
- Extend non-AVM negation check to also scan following context
- Use regex for AZD ordering assertion to match plural/prefixed variants

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Update github workflows to use best practices (#1149)

* Early terminate azure-deploy, azure-validate tests (#1205)

Add comment for early termination to help AI grader

* Replace script inline parameters with env var (#1209)

* Early terminate azure-deploy tests on deploy link (#1208)

* Early terminate azure-deploy tests on deploy link

* Fix lint issue

* Reduce char count of existing skills (#1210)

* Reduce char count of existing skills

* Update ci tests and snapshots

* Enhance benchmark ci run script (#1176)

* Add msbench_benchmarks repo clone to get model definition

* Remove unused vars

* Use mcp-pr repo before MI has access to msbench-benchmarks repo

* Address copilot feedback

* Change back to msbench-benchmarks repo

* Get ADO token for repo clone

* Fix line continuation character

* Add run for all interested models

* Extract run IDs

* Fix yaml format issue

* Schedule it to run nightly

* Address copilot feedbacks

* formalize .foundry and multi-environment support

* fix

* Feature/azure quotas (#1137)

* update for using azure-quotas in skill

* test update

* unit test update

* path update

* add skill in skills.json

* skills.json update

* reduce the text

* version update

* skill version

* skill description update

* reduce text size

* 1.0.4 for next prepare version

* upload snap shot

* update version

* test update

---------

Co-authored-by: Yinghui Dong <yinghuidong@microsoft.com>

* build(deps-dev): bump simple-git from 3.30.0 to 3.32.3 in /tests (#1213)

Bumps [simple-git](https://github.com/steveukx/git-js/tree/HEAD/simple-git) from 3.30.0 to 3.32.3.
- [Release notes](https://github.com/steveukx/git-js/releases)
- [Changelog](https://github.com/steveukx/git-js/blob/main/simple-git/CHANGELOG.md)
- [Commits](https://github.com/steveukx/git-js/commits/simple-git@3.32.3/simple-git)

---
updated-dependencies:
- dependency-name: simple-git
  dependency-version: 3.32.3
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Improve azure-compliance invocation rate (#1214)

* Improve azure-compliance invocation rate

* Race condition free report writing

* Fix debug logging for report location

* Bump skill version

* Fix suffix base value

* fix

* llm judge model and eval group improvement

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Chris Harris <charris@microsoft.com>
Co-authored-by: JasonYeMSFT <chuye@microsoft.com>
Co-authored-by: xfz11 <81600993+xfz11@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Juan Ospina <70209456+jeo02@users.noreply.github.com>
Co-authored-by: Jon Gallant <2163001+jongio@users.noreply.github.com>
Co-authored-by: Wes Haggard <weshaggard@users.noreply.github.com>
Co-authored-by: Fan Yang <52458914+fanyang-mono@users.noreply.github.com>
Co-authored-by: rakal-dyh <33503911+rakal-dyh@users.noreply.github.com>
Co-authored-by: Yinghui Dong <yinghuidong@microsoft.com>

* fix: expose observe prompt optimization routing

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

# Conflicts:
#	tests/microsoft-foundry/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/foundry-agent/create/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/foundry-agent/deploy/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/foundry-agent/invoke/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/foundry-agent/observe/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/foundry-agent/trace/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/foundry-agent/troubleshoot/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/models/deploy/capacity/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/models/deploy/customize-deployment/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/models/deploy/deploy-model-optimal-region/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/models/deploy/deploy-model/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/resource/create/__snapshots__/triggers.test.ts.snap

* chore: drop issue triage token fallback

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* docs: simplify deploy P0 test case guidance

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore: align microsoft-foundry version

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Fix comments

* test: move eval-datasets invocation tests

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Fix comments

* bump version

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: XOEEst <18523445+XOEEst@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Chris Harris <charris@microsoft.com>
Co-authored-by: JasonYeMSFT <chuye@microsoft.com>
Co-authored-by: xfz11 <81600993+xfz11@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Juan Ospina <70209456+jeo02@users.noreply.github.com>
Co-authored-by: Jon Gallant <2163001+jongio@users.noreply.github.com>
Co-authored-by: Wes Haggard <weshaggard@users.noreply.github.com>
Co-authored-by: Fan Yang <52458914+fanyang-mono@users.noreply.github.com>
Co-authored-by: rakal-dyh <33503911+rakal-dyh@users.noreply.github.com>
Co-authored-by: Yinghui Dong <yinghuidong@microsoft.com>
Luffy Chen (XOEEst) added a commit that referenced this pull request Mar 19, 2026
* Fix Issue Triage workflow: add `github.token` fallback for missing `COPILOT_GITHUB_TOKEN` (#6)

* Initial plan

* Fix issue triage workflow: add github.token fallback for COPILOT_GITHUB_TOKEN

The Issue Triage workflow was failing at the secret validation step because
COPILOT_GITHUB_TOKEN was not configured. This adds github.token as a fallback
in all 4 places where COPILOT_GITHUB_TOKEN is used for authentication:
- agent job: validate-secret step and Execute step
- detection job: validate-secret step and Execute step

This is consistent with the existing fallback patterns in the workflow
(e.g., secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN || secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN)

Co-authored-by: XOEEst <18523445+XOEEst@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: XOEEst <18523445+XOEEst@users.noreply.github.com>

* Fix/observe deploy loop logic (#7)

* Fix broken auto-create evaluators step in deploy/observe loop

The 'Auto-create evaluators & evaluation dataset' step was being skipped
when the monolithic agent-observability-loop skill was split into separate
deploy and observe skills. Neither skill owned the auto-create step,
causing post-deploy users to jump directly to evaluation.

Changes:
- deploy.md: Replace generic 'set up evaluation?' prompt with automatic
  6-step evaluator & dataset creation matching the reference behavior
- observe.md: Add Loop Overview, fix entry points to route post-deploy
  users through auto-setup, add evaluator existence check
- deploy-and-setup.md: Make auto-create primary content, demote deploy
  section to prerequisites

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add content tests for observe/deploy loop logic

Tests verify:
- observe.md has Loop Overview, post-deploy entry points, evaluator
  existence checks, behavioral rules, and all reference files
- deploy.md has auto-create evaluators section that is automatic (not
  optional), includes evaluator categories, LLM-judge, artifact
  persistence, and routes to observe skill Step 2
- deploy-and-setup.md has auto-create as primary content with proper
  evaluator selection, dataset generation, and user prompt

49 tests total (29 observe + 20 deploy), all passing.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore: trigger CI checks

* Fix

* add local dataset gen enforcement

* Merge

* feat: prefer monitor_resource_log_query and local datasets

- Replace azure-kusto delegation with monitor_resource_log_query for
  App Insights KQL queries in trace.md and troubleshoot.md
- Mark evaluation_dataset_create as not available (MCP upload not ready)
- Replace server-side dataset sections with local JSONL workflow
- Update mcp-gap-analysis.md to reflect practical tool availability

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: make dataset upload restriction more agent-proof

- Add Do NOT section at top of trace-to-dataset.md (before Overview)
- Add behavioral rule #7 to eval-datasets.md: never upload to cloud
- Remove Option A/B structure; Step 4 is now local JSONL only
- Eliminates subtle strikethrough formatting that agents miss

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Fix link

* fix: make auto-create evaluators an explicit numbered step

- Hosted workflow: add Step 10 after Step 9 with DO NOT stop gate
- Prompt workflow: add Step 5 after Step 4 with DO NOT stop gate
- Both link to existing After Deployment section as implementation
- Prevents agents from treating evaluator setup as optional appendix

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* feat: add dataset update loop with optimization guardrails

- Add Dataset Update Loop (eval→compare→analyze→optimize→re-eval)
  to dataset-versioning.md after Creating a New Version
- Add guardrails: never remove dataset rows or weaken evaluators
  to recover scores after dataset expansion
- Add same guardrail to observe optimize-deploy.md Step 6
- Add behavioral rule #8 to eval-datasets.md

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: add subscription parameter warning to trace-related skills

Always pass subscription explicitly to Azure MCP tools like
monitor_resource_log_query — they don't extract it from resource IDs.
Added to trace.md, troubleshoot.md, and trace-to-dataset.md.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: make customEvents-to-traces eval correlation more obvious

- Add Key Concept section to trace-to-dataset.md explaining that
  eval results live in customEvents (not dependencies) and the
  join key is gen_ai.response.id
- Add table showing dependencies vs customEvents join pattern
- Cross-reference trace skill's eval-correlation.md from both
  trace-to-dataset.md and eval-datasets.md Related Skills

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: improve cross-references and add KQL parse_json warning

1. Add parse_json(customDimensions) warning to Do NOT section
2. Add Related References section with skill-root paths
3. Add skill-root path hints to all cross-skill links
4. Add observe + trace to SKILL.md sub-skill routing table

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: improve hosted agent KQL patterns and content extraction

- Add Hosted Agent Harvest template (requests→dependencies join)
- Fix Hosted Agent Attributes: appear on both requests and traces
- Add gen_ai.agent.name duality callout (Foundry name vs class name)
- Remove incorrect azure.ai.agentserver.agent_name fallback from dependencies queries
- Document gen_ai.input.messages/gen_ai.output.messages as content source
- Add operation_ParentId join example to Span Correlation section
- Update search-traces.md hosted agent query to use requests entry point

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: improve trace sub-skills for hosted agent KQL patterns

- search-traces: fix hosted agent query to group by operation_ParentId
- conversation-detail: add content extraction from invoke_agent spans
  (gen_ai.input.messages / gen_ai.output.messages)
- analyze-failures: add hosted agent gen_ai.agent.name duality warning
  and hosted agent variant query using requests→dependencies join
- analyze-latency: same hosted agent warning and variant query
- kql-templates: expand requests table description as preferred entry
  point; add gen_ai.input/output.messages to attributes table
- trace.md: reword rule 6 to clarify hosted vs prompt agent filtering

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: restore routing keywords and update trigger snapshots

- Add back critical routing keywords to SKILL.md description (578→779 chars):
  role assignment, permissions, capacity, region, deployment failure,
  AI Services, Cognitive Services, provision, knowledge index,
  monitoring, customize, onboard, availability
- Update trigger test snapshots for new keyword set (24 snapshots)
- Fix deploy trigger test: Docker IS our capability (remove false negative)
- Fix customize-deployment tests: ensure prompts have ≥2 keyword matches
- Fix deploy-model-optimal-region tests: use longer prompts for HA/PTU

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: add 'create AI Services' to description for resource/create test

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore: bump microsoft-foundry version to 1.0.2

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* feat(eval-datasets): enable Foundry dataset sync via MCP tools

- Add Step 5 (Sync to Foundry) to trace-to-dataset pipeline using
  evaluation_dataset_create with connectionName and project_connection tools
- Add server-side version discovery via evaluation_dataset_versions_get
- Add dual experiment types to dataset-comparison (agent vs dataset comparison)
- Update mcp-gap-analysis: mark resolved tools, update workarounds
- Add AzureBlob to project connections reference
- Bump microsoft-foundry version to 1.0.3
- Fix upstream section heading changes in unit tests
- Update trigger snapshots for upstream keyword changes

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* refactor(dataset-comparison): focus on dataset-version comparison only

Remove agent comparison experiment type from dataset-comparison flow.
Agent comparison belongs in the observe/eval loop, not the dataset skill.
Update all examples to use dataset versions as baseline/treatment.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Remove Playwright MCP server until skills require it (#1200)

* Collapse token analysis comment (#1147)

* update region-availability in prepare/validate/deploy skill (#1083)

* update region-availability in prepare/deploy skill

* update

* update

* fix

* update date

* Update plugin/skills/azure-deploy/references/region-availability.md

* fix ci failure

* bump version

* build(deps): bump @github/copilot and @github/copilot-sdk in /tests (#1201)

Bumps [@github/copilot](https://github.com/github/copilot-cli) to 1.0.2 and updates ancestor dependency [@github/copilot-sdk](https://github.com/github/copilot-sdk). These dependencies need to be updated together.

Updates `@github/copilot` from 0.0.414 to 1.0.2
- [Release notes](https://github.com/github/copilot-cli/releases)
- [Changelog](https://github.com/github/copilot-cli/blob/main/changelog.md)
- [Commits](github/copilot-cli@v0.0.414...v1.0.2)

Updates `@github/copilot-sdk` from 0.1.26 to 0.1.32
- [Release notes](https://github.com/github/copilot-sdk/releases)
- [Changelog](https://github.com/github/copilot-sdk/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/copilot-sdk/commits/v0.1.32)

---
updated-dependencies:
- dependency-name: "@github/copilot"
  dependency-version: 1.0.2
  dependency-type: indirect
- dependency-name: "@github/copilot-sdk"
  dependency-version: 0.1.32
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* specify application path in prompt (#1204)

* Add AVM (Azure Verified Modules) integration tests (#1171)

* Add AVM (Azure Verified Modules) integration tests

Add 3 integration tests validating the AVM module selection hierarchy
for Bicep infrastructure generation:

- avm-module-priority: Verifies AVM modules prioritized over non-AVM
- avm-fallback-behavior: Verifies fallback stays within AVM ecosystem
- avm-azd-pattern-preference: Verifies AZD pattern modules preferred

Tests validate that the azure-deploy skill enforces the mandatory
AVM selection order: Pattern modules > Resource modules > Utility
modules, and never falls back to non-AVM alternatives.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add output assertions to AVM integration tests

Address Copilot review feedback: add keyword-based output
assertions using getAllAssistantMessages/getAllToolText to
verify agent responses contain AVM hierarchy terms, not just
skill invocation. Includes non-AVM fallback negative check.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Strengthen AVM test output assertions per Copilot review

- Split keyword checks into critical-term + context assertions
- Add resource-before-utility ordering assertion for fallback test
- Expand non-AVM negative check to use regex patterns
- Require core keywords (avm+pattern, azd+pattern) explicitly

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: address Copilot round 3 — ordering assertions and context-aware non-AVM check

- Add hierarchy ordering assertion to test 1 (pattern before resource/utility)
- Make non-AVM detection context-aware: skip matches preceded by negation words
  (e.g., 'never fall back to non-AVM' is correct behavior, not a false positive)
- Add pattern-before-resource ordering assertion to test 3 (AZD pattern preference)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* refactor: move AVM integration tests to avm/ subdirectory

Move tests/azure-deploy/avm-integration.test.ts to
tests/azure-deploy/avm/integration.test.ts so the file matches the
**/integration.test.ts glob used by the custom ESLint rule
(integration-test-name) and follows the subdirectory convention
established by tests/microsoft-foundry/ (e.g. foundry-agent/).

Import paths updated from ../utils/ to ../../utils/ to reflect the
new depth.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: address round 4 Copilot review feedback

- Add 'fall back'/'fall-back' keyword variants for resilience
- Extend non-AVM negation check to also scan following context
- Use regex for AZD ordering assertion to match plural/prefixed variants

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Update github workflows to use best practices (#1149)

* Early terminate azure-deploy, azure-validate tests (#1205)

Add comment for early termination to help AI grader

* Replace script inline parameters with env var (#1209)

* Early terminate azure-deploy tests on deploy link (#1208)

* Early terminate azure-deploy tests on deploy link

* Fix lint issue

* Reduce char count of existing skills (#1210)

* Reduce char count of existing skills

* Update ci tests and snapshots

* Enhance benchmark ci run script (#1176)

* Add msbench_benchmarks repo clone to get model definition

* Remove unused vars

* Use mcp-pr repo before MI has access to msbench-benchmarks repo

* Address copilot feedback

* Change back to msbench-benchmarks repo

* Get ADO token for repo clone

* Fix line continuation character

* Add run for all interested models

* Extract run IDs

* Fix yaml format issue

* Schedule it to run nightly

* Address copilot feedbacks

* formalize .foundry and multi-environment support

* fix

* Feature/azure quotas (#1137)

* update for using azure-quotas in skill

* test update

* unit test update

* path update

* add skill in skills.json

* skills.json update

* reduce the text

* version update

* skill version

* skill description update

* reduce text size

* 1.0.4 for next prepare version

* upload snap shot

* update version

* test update

---------

Co-authored-by: Yinghui Dong <yinghuidong@microsoft.com>

* build(deps-dev): bump simple-git from 3.30.0 to 3.32.3 in /tests (#1213)

Bumps [simple-git](https://github.com/steveukx/git-js/tree/HEAD/simple-git) from 3.30.0 to 3.32.3.
- [Release notes](https://github.com/steveukx/git-js/releases)
- [Changelog](https://github.com/steveukx/git-js/blob/main/simple-git/CHANGELOG.md)
- [Commits](https://github.com/steveukx/git-js/commits/simple-git@3.32.3/simple-git)

---
updated-dependencies:
- dependency-name: simple-git
  dependency-version: 3.32.3
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Improve azure-compliance invocation rate (#1214)

* Improve azure-compliance invocation rate

* Race condition free report writing

* Fix debug logging for report location

* Bump skill version

* Fix suffix base value

* fix

* llm judge model and eval group improvement

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Chris Harris <charris@microsoft.com>
Co-authored-by: JasonYeMSFT <chuye@microsoft.com>
Co-authored-by: xfz11 <81600993+xfz11@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Juan Ospina <70209456+jeo02@users.noreply.github.com>
Co-authored-by: Jon Gallant <2163001+jongio@users.noreply.github.com>
Co-authored-by: Wes Haggard <weshaggard@users.noreply.github.com>
Co-authored-by: Fan Yang <52458914+fanyang-mono@users.noreply.github.com>
Co-authored-by: rakal-dyh <33503911+rakal-dyh@users.noreply.github.com>
Co-authored-by: Yinghui Dong <yinghuidong@microsoft.com>

* fix: expose observe prompt optimization routing

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

# Conflicts:
#	tests/microsoft-foundry/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/foundry-agent/create/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/foundry-agent/deploy/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/foundry-agent/invoke/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/foundry-agent/observe/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/foundry-agent/trace/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/foundry-agent/troubleshoot/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/models/deploy/capacity/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/models/deploy/customize-deployment/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/models/deploy/deploy-model-optimal-region/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/models/deploy/deploy-model/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/resource/create/__snapshots__/triggers.test.ts.snap

* chore: drop issue triage token fallback

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* docs: simplify deploy P0 test case guidance

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore: align microsoft-foundry version

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Fix comments

* test: move eval-datasets invocation tests

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Fix comments

* bump version

* dataset fix (#9)

* dataset fix

* fix: restore foundry dataset guidance

Restore the explicit seed dataset registration guidance in the deploy skill and align dataset docs with the current evaluation_dataset_create MCP surface.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore: add codeowner for microsoft-foundry

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: address foundry PR review comments

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: normalize foundry dataset versioning docs

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Deduplicate Foundry dataset registration docs

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* use sdk for eval results

* Fix comments

* Align observe test with SDK guidance

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Remove redundant Foundry MCP tips

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Fix dataset manifest version examples

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix

* Align eval-datasets metadata docs

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Merge remote-tracking branch 'upstream/main'

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: XOEEst <18523445+XOEEst@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Chris Harris <charris@microsoft.com>
Co-authored-by: JasonYeMSFT <chuye@microsoft.com>
Co-authored-by: xfz11 <81600993+xfz11@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Juan Ospina <70209456+jeo02@users.noreply.github.com>
Co-authored-by: Jon Gallant <2163001+jongio@users.noreply.github.com>
Co-authored-by: Wes Haggard <weshaggard@users.noreply.github.com>
Co-authored-by: Fan Yang <52458914+fanyang-mono@users.noreply.github.com>
Co-authored-by: rakal-dyh <33503911+rakal-dyh@users.noreply.github.com>
Co-authored-by: Yinghui Dong <yinghuidong@microsoft.com>
Barbara 4bes (Ba4bes) pushed a commit to Ba4bes/GitHub-Copilot-for-Azure that referenced this pull request Apr 24, 2026
Barbara 4bes (Ba4bes) pushed a commit to Ba4bes/GitHub-Copilot-for-Azure that referenced this pull request Apr 24, 2026
…and more. (microsoft#1219)

* Fix Issue Triage workflow: add `github.token` fallback for missing `COPILOT_GITHUB_TOKEN` (microsoft#6)

* Initial plan

* Fix issue triage workflow: add github.token fallback for COPILOT_GITHUB_TOKEN

The Issue Triage workflow was failing at the secret validation step because
COPILOT_GITHUB_TOKEN was not configured. This adds github.token as a fallback
in all 4 places where COPILOT_GITHUB_TOKEN is used for authentication:
- agent job: validate-secret step and Execute step
- detection job: validate-secret step and Execute step

This is consistent with the existing fallback patterns in the workflow
(e.g., secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN || secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN)

Co-authored-by: XOEEst <18523445+XOEEst@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: XOEEst <18523445+XOEEst@users.noreply.github.com>

* Fix/observe deploy loop logic (microsoft#7)

* Fix broken auto-create evaluators step in deploy/observe loop

The 'Auto-create evaluators & evaluation dataset' step was being skipped
when the monolithic agent-observability-loop skill was split into separate
deploy and observe skills. Neither skill owned the auto-create step,
causing post-deploy users to jump directly to evaluation.

Changes:
- deploy.md: Replace generic 'set up evaluation?' prompt with automatic
  6-step evaluator & dataset creation matching the reference behavior
- observe.md: Add Loop Overview, fix entry points to route post-deploy
  users through auto-setup, add evaluator existence check
- deploy-and-setup.md: Make auto-create primary content, demote deploy
  section to prerequisites

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add content tests for observe/deploy loop logic

Tests verify:
- observe.md has Loop Overview, post-deploy entry points, evaluator
  existence checks, behavioral rules, and all reference files
- deploy.md has auto-create evaluators section that is automatic (not
  optional), includes evaluator categories, LLM-judge, artifact
  persistence, and routes to observe skill Step 2
- deploy-and-setup.md has auto-create as primary content with proper
  evaluator selection, dataset generation, and user prompt

49 tests total (29 observe + 20 deploy), all passing.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore: trigger CI checks

* Fix

* add local dataset gen enforcement

* Merge

* feat: prefer monitor_resource_log_query and local datasets

- Replace azure-kusto delegation with monitor_resource_log_query for
  App Insights KQL queries in trace.md and troubleshoot.md
- Mark evaluation_dataset_create as not available (MCP upload not ready)
- Replace server-side dataset sections with local JSONL workflow
- Update mcp-gap-analysis.md to reflect practical tool availability

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: make dataset upload restriction more agent-proof

- Add Do NOT section at top of trace-to-dataset.md (before Overview)
- Add behavioral rule microsoft#7 to eval-datasets.md: never upload to cloud
- Remove Option A/B structure; Step 4 is now local JSONL only
- Eliminates subtle strikethrough formatting that agents miss

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Fix link

* fix: make auto-create evaluators an explicit numbered step

- Hosted workflow: add Step 10 after Step 9 with DO NOT stop gate
- Prompt workflow: add Step 5 after Step 4 with DO NOT stop gate
- Both link to existing After Deployment section as implementation
- Prevents agents from treating evaluator setup as optional appendix

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* feat: add dataset update loop with optimization guardrails

- Add Dataset Update Loop (eval→compare→analyze→optimize→re-eval)
  to dataset-versioning.md after Creating a New Version
- Add guardrails: never remove dataset rows or weaken evaluators
  to recover scores after dataset expansion
- Add same guardrail to observe optimize-deploy.md Step 6
- Add behavioral rule microsoft#8 to eval-datasets.md

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: add subscription parameter warning to trace-related skills

Always pass subscription explicitly to Azure MCP tools like
monitor_resource_log_query — they don't extract it from resource IDs.
Added to trace.md, troubleshoot.md, and trace-to-dataset.md.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: make customEvents-to-traces eval correlation more obvious

- Add Key Concept section to trace-to-dataset.md explaining that
  eval results live in customEvents (not dependencies) and the
  join key is gen_ai.response.id
- Add table showing dependencies vs customEvents join pattern
- Cross-reference trace skill's eval-correlation.md from both
  trace-to-dataset.md and eval-datasets.md Related Skills

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: improve cross-references and add KQL parse_json warning

1. Add parse_json(customDimensions) warning to Do NOT section
2. Add Related References section with skill-root paths
3. Add skill-root path hints to all cross-skill links
4. Add observe + trace to SKILL.md sub-skill routing table

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: improve hosted agent KQL patterns and content extraction

- Add Hosted Agent Harvest template (requests→dependencies join)
- Fix Hosted Agent Attributes: appear on both requests and traces
- Add gen_ai.agent.name duality callout (Foundry name vs class name)
- Remove incorrect azure.ai.agentserver.agent_name fallback from dependencies queries
- Document gen_ai.input.messages/gen_ai.output.messages as content source
- Add operation_ParentId join example to Span Correlation section
- Update search-traces.md hosted agent query to use requests entry point

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: improve trace sub-skills for hosted agent KQL patterns

- search-traces: fix hosted agent query to group by operation_ParentId
- conversation-detail: add content extraction from invoke_agent spans
  (gen_ai.input.messages / gen_ai.output.messages)
- analyze-failures: add hosted agent gen_ai.agent.name duality warning
  and hosted agent variant query using requests→dependencies join
- analyze-latency: same hosted agent warning and variant query
- kql-templates: expand requests table description as preferred entry
  point; add gen_ai.input/output.messages to attributes table
- trace.md: reword rule 6 to clarify hosted vs prompt agent filtering

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: restore routing keywords and update trigger snapshots

- Add back critical routing keywords to SKILL.md description (578→779 chars):
  role assignment, permissions, capacity, region, deployment failure,
  AI Services, Cognitive Services, provision, knowledge index,
  monitoring, customize, onboard, availability
- Update trigger test snapshots for new keyword set (24 snapshots)
- Fix deploy trigger test: Docker IS our capability (remove false negative)
- Fix customize-deployment tests: ensure prompts have ≥2 keyword matches
- Fix deploy-model-optimal-region tests: use longer prompts for HA/PTU

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: add 'create AI Services' to description for resource/create test

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore: bump microsoft-foundry version to 1.0.2

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* feat(eval-datasets): enable Foundry dataset sync via MCP tools

- Add Step 5 (Sync to Foundry) to trace-to-dataset pipeline using
  evaluation_dataset_create with connectionName and project_connection tools
- Add server-side version discovery via evaluation_dataset_versions_get
- Add dual experiment types to dataset-comparison (agent vs dataset comparison)
- Update mcp-gap-analysis: mark resolved tools, update workarounds
- Add AzureBlob to project connections reference
- Bump microsoft-foundry version to 1.0.3
- Fix upstream section heading changes in unit tests
- Update trigger snapshots for upstream keyword changes

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* refactor(dataset-comparison): focus on dataset-version comparison only

Remove agent comparison experiment type from dataset-comparison flow.
Agent comparison belongs in the observe/eval loop, not the dataset skill.
Update all examples to use dataset versions as baseline/treatment.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Remove Playwright MCP server until skills require it (microsoft#1200)

* Collapse token analysis comment (microsoft#1147)

* update region-availability in prepare/validate/deploy skill (microsoft#1083)

* update region-availability in prepare/deploy skill

* update

* update

* fix

* update date

* Update plugin/skills/azure-deploy/references/region-availability.md

* fix ci failure

* bump version

* build(deps): bump @github/copilot and @github/copilot-sdk in /tests (microsoft#1201)

Bumps [@github/copilot](https://github.com/github/copilot-cli) to 1.0.2 and updates ancestor dependency [@github/copilot-sdk](https://github.com/github/copilot-sdk). These dependencies need to be updated together.

Updates `@github/copilot` from 0.0.414 to 1.0.2
- [Release notes](https://github.com/github/copilot-cli/releases)
- [Changelog](https://github.com/github/copilot-cli/blob/main/changelog.md)
- [Commits](github/copilot-cli@v0.0.414...v1.0.2)

Updates `@github/copilot-sdk` from 0.1.26 to 0.1.32
- [Release notes](https://github.com/github/copilot-sdk/releases)
- [Changelog](https://github.com/github/copilot-sdk/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/copilot-sdk/commits/v0.1.32)

---
updated-dependencies:
- dependency-name: "@github/copilot"
  dependency-version: 1.0.2
  dependency-type: indirect
- dependency-name: "@github/copilot-sdk"
  dependency-version: 0.1.32
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* specify application path in prompt (microsoft#1204)

* Add AVM (Azure Verified Modules) integration tests (microsoft#1171)

* Add AVM (Azure Verified Modules) integration tests

Add 3 integration tests validating the AVM module selection hierarchy
for Bicep infrastructure generation:

- avm-module-priority: Verifies AVM modules prioritized over non-AVM
- avm-fallback-behavior: Verifies fallback stays within AVM ecosystem
- avm-azd-pattern-preference: Verifies AZD pattern modules preferred

Tests validate that the azure-deploy skill enforces the mandatory
AVM selection order: Pattern modules > Resource modules > Utility
modules, and never falls back to non-AVM alternatives.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add output assertions to AVM integration tests

Address Copilot review feedback: add keyword-based output
assertions using getAllAssistantMessages/getAllToolText to
verify agent responses contain AVM hierarchy terms, not just
skill invocation. Includes non-AVM fallback negative check.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Strengthen AVM test output assertions per Copilot review

- Split keyword checks into critical-term + context assertions
- Add resource-before-utility ordering assertion for fallback test
- Expand non-AVM negative check to use regex patterns
- Require core keywords (avm+pattern, azd+pattern) explicitly

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: address Copilot round 3 — ordering assertions and context-aware non-AVM check

- Add hierarchy ordering assertion to test 1 (pattern before resource/utility)
- Make non-AVM detection context-aware: skip matches preceded by negation words
  (e.g., 'never fall back to non-AVM' is correct behavior, not a false positive)
- Add pattern-before-resource ordering assertion to test 3 (AZD pattern preference)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* refactor: move AVM integration tests to avm/ subdirectory

Move tests/azure-deploy/avm-integration.test.ts to
tests/azure-deploy/avm/integration.test.ts so the file matches the
**/integration.test.ts glob used by the custom ESLint rule
(integration-test-name) and follows the subdirectory convention
established by tests/microsoft-foundry/ (e.g. foundry-agent/).

Import paths updated from ../utils/ to ../../utils/ to reflect the
new depth.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: address round 4 Copilot review feedback

- Add 'fall back'/'fall-back' keyword variants for resilience
- Extend non-AVM negation check to also scan following context
- Use regex for AZD ordering assertion to match plural/prefixed variants

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Update github workflows to use best practices (microsoft#1149)

* Early terminate azure-deploy, azure-validate tests (microsoft#1205)

Add comment for early termination to help AI grader

* Replace script inline parameters with env var (microsoft#1209)

* Early terminate azure-deploy tests on deploy link (microsoft#1208)

* Early terminate azure-deploy tests on deploy link

* Fix lint issue

* Reduce char count of existing skills (microsoft#1210)

* Reduce char count of existing skills

* Update ci tests and snapshots

* Enhance benchmark ci run script (microsoft#1176)

* Add msbench_benchmarks repo clone to get model definition

* Remove unused vars

* Use mcp-pr repo before MI has access to msbench-benchmarks repo

* Address copilot feedback

* Change back to msbench-benchmarks repo

* Get ADO token for repo clone

* Fix line continuation character

* Add run for all interested models

* Extract run IDs

* Fix yaml format issue

* Schedule it to run nightly

* Address copilot feedbacks

* formalize .foundry and multi-environment support

* fix

* Feature/azure quotas (microsoft#1137)

* update for using azure-quotas in skill

* test update

* unit test update

* path update

* add skill in skills.json

* skills.json update

* reduce the text

* version update

* skill version

* skill description update

* reduce text size

* 1.0.4 for next prepare version

* upload snap shot

* update version

* test update

---------

Co-authored-by: Yinghui Dong <yinghuidong@microsoft.com>

* build(deps-dev): bump simple-git from 3.30.0 to 3.32.3 in /tests (microsoft#1213)

Bumps [simple-git](https://github.com/steveukx/git-js/tree/HEAD/simple-git) from 3.30.0 to 3.32.3.
- [Release notes](https://github.com/steveukx/git-js/releases)
- [Changelog](https://github.com/steveukx/git-js/blob/main/simple-git/CHANGELOG.md)
- [Commits](https://github.com/steveukx/git-js/commits/simple-git@3.32.3/simple-git)

---
updated-dependencies:
- dependency-name: simple-git
  dependency-version: 3.32.3
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Improve azure-compliance invocation rate (microsoft#1214)

* Improve azure-compliance invocation rate

* Race condition free report writing

* Fix debug logging for report location

* Bump skill version

* Fix suffix base value

* fix

* llm judge model and eval group improvement

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Chris Harris <charris@microsoft.com>
Co-authored-by: JasonYeMSFT <chuye@microsoft.com>
Co-authored-by: xfz11 <81600993+xfz11@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Juan Ospina <70209456+jeo02@users.noreply.github.com>
Co-authored-by: Jon Gallant <2163001+jongio@users.noreply.github.com>
Co-authored-by: Wes Haggard <weshaggard@users.noreply.github.com>
Co-authored-by: Fan Yang <52458914+fanyang-mono@users.noreply.github.com>
Co-authored-by: rakal-dyh <33503911+rakal-dyh@users.noreply.github.com>
Co-authored-by: Yinghui Dong <yinghuidong@microsoft.com>

* fix: expose observe prompt optimization routing

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

# Conflicts:
#	tests/microsoft-foundry/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/foundry-agent/create/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/foundry-agent/deploy/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/foundry-agent/invoke/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/foundry-agent/observe/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/foundry-agent/trace/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/foundry-agent/troubleshoot/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/models/deploy/capacity/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/models/deploy/customize-deployment/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/models/deploy/deploy-model-optimal-region/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/models/deploy/deploy-model/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/resource/create/__snapshots__/triggers.test.ts.snap

* chore: drop issue triage token fallback

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* docs: simplify deploy P0 test case guidance

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore: align microsoft-foundry version

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Fix comments

* test: move eval-datasets invocation tests

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Fix comments

* bump version

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: XOEEst <18523445+XOEEst@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Chris Harris <charris@microsoft.com>
Co-authored-by: JasonYeMSFT <chuye@microsoft.com>
Co-authored-by: xfz11 <81600993+xfz11@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Juan Ospina <70209456+jeo02@users.noreply.github.com>
Co-authored-by: Jon Gallant <2163001+jongio@users.noreply.github.com>
Co-authored-by: Wes Haggard <weshaggard@users.noreply.github.com>
Co-authored-by: Fan Yang <52458914+fanyang-mono@users.noreply.github.com>
Co-authored-by: rakal-dyh <33503911+rakal-dyh@users.noreply.github.com>
Co-authored-by: Yinghui Dong <yinghuidong@microsoft.com>
Barbara 4bes (Ba4bes) pushed a commit to Ba4bes/GitHub-Copilot-for-Azure that referenced this pull request Apr 24, 2026
* Fix Issue Triage workflow: add `github.token` fallback for missing `COPILOT_GITHUB_TOKEN` (microsoft#6)

* Initial plan

* Fix issue triage workflow: add github.token fallback for COPILOT_GITHUB_TOKEN

The Issue Triage workflow was failing at the secret validation step because
COPILOT_GITHUB_TOKEN was not configured. This adds github.token as a fallback
in all 4 places where COPILOT_GITHUB_TOKEN is used for authentication:
- agent job: validate-secret step and Execute step
- detection job: validate-secret step and Execute step

This is consistent with the existing fallback patterns in the workflow
(e.g., secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN || secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN)

Co-authored-by: XOEEst <18523445+XOEEst@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: XOEEst <18523445+XOEEst@users.noreply.github.com>

* Fix/observe deploy loop logic (microsoft#7)

* Fix broken auto-create evaluators step in deploy/observe loop

The 'Auto-create evaluators & evaluation dataset' step was being skipped
when the monolithic agent-observability-loop skill was split into separate
deploy and observe skills. Neither skill owned the auto-create step,
causing post-deploy users to jump directly to evaluation.

Changes:
- deploy.md: Replace generic 'set up evaluation?' prompt with automatic
  6-step evaluator & dataset creation matching the reference behavior
- observe.md: Add Loop Overview, fix entry points to route post-deploy
  users through auto-setup, add evaluator existence check
- deploy-and-setup.md: Make auto-create primary content, demote deploy
  section to prerequisites

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add content tests for observe/deploy loop logic

Tests verify:
- observe.md has Loop Overview, post-deploy entry points, evaluator
  existence checks, behavioral rules, and all reference files
- deploy.md has auto-create evaluators section that is automatic (not
  optional), includes evaluator categories, LLM-judge, artifact
  persistence, and routes to observe skill Step 2
- deploy-and-setup.md has auto-create as primary content with proper
  evaluator selection, dataset generation, and user prompt

49 tests total (29 observe + 20 deploy), all passing.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore: trigger CI checks

* Fix

* add local dataset gen enforcement

* Merge

* feat: prefer monitor_resource_log_query and local datasets

- Replace azure-kusto delegation with monitor_resource_log_query for
  App Insights KQL queries in trace.md and troubleshoot.md
- Mark evaluation_dataset_create as not available (MCP upload not ready)
- Replace server-side dataset sections with local JSONL workflow
- Update mcp-gap-analysis.md to reflect practical tool availability

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: make dataset upload restriction more agent-proof

- Add Do NOT section at top of trace-to-dataset.md (before Overview)
- Add behavioral rule microsoft#7 to eval-datasets.md: never upload to cloud
- Remove Option A/B structure; Step 4 is now local JSONL only
- Eliminates subtle strikethrough formatting that agents miss

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Fix link

* fix: make auto-create evaluators an explicit numbered step

- Hosted workflow: add Step 10 after Step 9 with DO NOT stop gate
- Prompt workflow: add Step 5 after Step 4 with DO NOT stop gate
- Both link to existing After Deployment section as implementation
- Prevents agents from treating evaluator setup as optional appendix

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* feat: add dataset update loop with optimization guardrails

- Add Dataset Update Loop (eval→compare→analyze→optimize→re-eval)
  to dataset-versioning.md after Creating a New Version
- Add guardrails: never remove dataset rows or weaken evaluators
  to recover scores after dataset expansion
- Add same guardrail to observe optimize-deploy.md Step 6
- Add behavioral rule microsoft#8 to eval-datasets.md

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: add subscription parameter warning to trace-related skills

Always pass subscription explicitly to Azure MCP tools like
monitor_resource_log_query — they don't extract it from resource IDs.
Added to trace.md, troubleshoot.md, and trace-to-dataset.md.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: make customEvents-to-traces eval correlation more obvious

- Add Key Concept section to trace-to-dataset.md explaining that
  eval results live in customEvents (not dependencies) and the
  join key is gen_ai.response.id
- Add table showing dependencies vs customEvents join pattern
- Cross-reference trace skill's eval-correlation.md from both
  trace-to-dataset.md and eval-datasets.md Related Skills

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: improve cross-references and add KQL parse_json warning

1. Add parse_json(customDimensions) warning to Do NOT section
2. Add Related References section with skill-root paths
3. Add skill-root path hints to all cross-skill links
4. Add observe + trace to SKILL.md sub-skill routing table

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: improve hosted agent KQL patterns and content extraction

- Add Hosted Agent Harvest template (requests→dependencies join)
- Fix Hosted Agent Attributes: appear on both requests and traces
- Add gen_ai.agent.name duality callout (Foundry name vs class name)
- Remove incorrect azure.ai.agentserver.agent_name fallback from dependencies queries
- Document gen_ai.input.messages/gen_ai.output.messages as content source
- Add operation_ParentId join example to Span Correlation section
- Update search-traces.md hosted agent query to use requests entry point

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: improve trace sub-skills for hosted agent KQL patterns

- search-traces: fix hosted agent query to group by operation_ParentId
- conversation-detail: add content extraction from invoke_agent spans
  (gen_ai.input.messages / gen_ai.output.messages)
- analyze-failures: add hosted agent gen_ai.agent.name duality warning
  and hosted agent variant query using requests→dependencies join
- analyze-latency: same hosted agent warning and variant query
- kql-templates: expand requests table description as preferred entry
  point; add gen_ai.input/output.messages to attributes table
- trace.md: reword rule 6 to clarify hosted vs prompt agent filtering

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: restore routing keywords and update trigger snapshots

- Add back critical routing keywords to SKILL.md description (578→779 chars):
  role assignment, permissions, capacity, region, deployment failure,
  AI Services, Cognitive Services, provision, knowledge index,
  monitoring, customize, onboard, availability
- Update trigger test snapshots for new keyword set (24 snapshots)
- Fix deploy trigger test: Docker IS our capability (remove false negative)
- Fix customize-deployment tests: ensure prompts have ≥2 keyword matches
- Fix deploy-model-optimal-region tests: use longer prompts for HA/PTU

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: add 'create AI Services' to description for resource/create test

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore: bump microsoft-foundry version to 1.0.2

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* feat(eval-datasets): enable Foundry dataset sync via MCP tools

- Add Step 5 (Sync to Foundry) to trace-to-dataset pipeline using
  evaluation_dataset_create with connectionName and project_connection tools
- Add server-side version discovery via evaluation_dataset_versions_get
- Add dual experiment types to dataset-comparison (agent vs dataset comparison)
- Update mcp-gap-analysis: mark resolved tools, update workarounds
- Add AzureBlob to project connections reference
- Bump microsoft-foundry version to 1.0.3
- Fix upstream section heading changes in unit tests
- Update trigger snapshots for upstream keyword changes

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* refactor(dataset-comparison): focus on dataset-version comparison only

Remove agent comparison experiment type from dataset-comparison flow.
Agent comparison belongs in the observe/eval loop, not the dataset skill.
Update all examples to use dataset versions as baseline/treatment.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Remove Playwright MCP server until skills require it (microsoft#1200)

* Collapse token analysis comment (microsoft#1147)

* update region-availability in prepare/validate/deploy skill (microsoft#1083)

* update region-availability in prepare/deploy skill

* update

* update

* fix

* update date

* Update plugin/skills/azure-deploy/references/region-availability.md

* fix ci failure

* bump version

* build(deps): bump @github/copilot and @github/copilot-sdk in /tests (microsoft#1201)

Bumps [@github/copilot](https://github.com/github/copilot-cli) to 1.0.2 and updates ancestor dependency [@github/copilot-sdk](https://github.com/github/copilot-sdk). These dependencies need to be updated together.

Updates `@github/copilot` from 0.0.414 to 1.0.2
- [Release notes](https://github.com/github/copilot-cli/releases)
- [Changelog](https://github.com/github/copilot-cli/blob/main/changelog.md)
- [Commits](github/copilot-cli@v0.0.414...v1.0.2)

Updates `@github/copilot-sdk` from 0.1.26 to 0.1.32
- [Release notes](https://github.com/github/copilot-sdk/releases)
- [Changelog](https://github.com/github/copilot-sdk/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/copilot-sdk/commits/v0.1.32)

---
updated-dependencies:
- dependency-name: "@github/copilot"
  dependency-version: 1.0.2
  dependency-type: indirect
- dependency-name: "@github/copilot-sdk"
  dependency-version: 0.1.32
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* specify application path in prompt (microsoft#1204)

* Add AVM (Azure Verified Modules) integration tests (microsoft#1171)

* Add AVM (Azure Verified Modules) integration tests

Add 3 integration tests validating the AVM module selection hierarchy
for Bicep infrastructure generation:

- avm-module-priority: Verifies AVM modules prioritized over non-AVM
- avm-fallback-behavior: Verifies fallback stays within AVM ecosystem
- avm-azd-pattern-preference: Verifies AZD pattern modules preferred

Tests validate that the azure-deploy skill enforces the mandatory
AVM selection order: Pattern modules > Resource modules > Utility
modules, and never falls back to non-AVM alternatives.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add output assertions to AVM integration tests

Address Copilot review feedback: add keyword-based output
assertions using getAllAssistantMessages/getAllToolText to
verify agent responses contain AVM hierarchy terms, not just
skill invocation. Includes non-AVM fallback negative check.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Strengthen AVM test output assertions per Copilot review

- Split keyword checks into critical-term + context assertions
- Add resource-before-utility ordering assertion for fallback test
- Expand non-AVM negative check to use regex patterns
- Require core keywords (avm+pattern, azd+pattern) explicitly

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: address Copilot round 3 — ordering assertions and context-aware non-AVM check

- Add hierarchy ordering assertion to test 1 (pattern before resource/utility)
- Make non-AVM detection context-aware: skip matches preceded by negation words
  (e.g., 'never fall back to non-AVM' is correct behavior, not a false positive)
- Add pattern-before-resource ordering assertion to test 3 (AZD pattern preference)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* refactor: move AVM integration tests to avm/ subdirectory

Move tests/azure-deploy/avm-integration.test.ts to
tests/azure-deploy/avm/integration.test.ts so the file matches the
**/integration.test.ts glob used by the custom ESLint rule
(integration-test-name) and follows the subdirectory convention
established by tests/microsoft-foundry/ (e.g. foundry-agent/).

Import paths updated from ../utils/ to ../../utils/ to reflect the
new depth.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: address round 4 Copilot review feedback

- Add 'fall back'/'fall-back' keyword variants for resilience
- Extend non-AVM negation check to also scan following context
- Use regex for AZD ordering assertion to match plural/prefixed variants

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Update github workflows to use best practices (microsoft#1149)

* Early terminate azure-deploy, azure-validate tests (microsoft#1205)

Add comment for early termination to help AI grader

* Replace script inline parameters with env var (microsoft#1209)

* Early terminate azure-deploy tests on deploy link (microsoft#1208)

* Early terminate azure-deploy tests on deploy link

* Fix lint issue

* Reduce char count of existing skills (microsoft#1210)

* Reduce char count of existing skills

* Update ci tests and snapshots

* Enhance benchmark ci run script (microsoft#1176)

* Add msbench_benchmarks repo clone to get model definition

* Remove unused vars

* Use mcp-pr repo before MI has access to msbench-benchmarks repo

* Address copilot feedback

* Change back to msbench-benchmarks repo

* Get ADO token for repo clone

* Fix line continuation character

* Add run for all interested models

* Extract run IDs

* Fix yaml format issue

* Schedule it to run nightly

* Address copilot feedbacks

* formalize .foundry and multi-environment support

* fix

* Feature/azure quotas (microsoft#1137)

* update for using azure-quotas in skill

* test update

* unit test update

* path update

* add skill in skills.json

* skills.json update

* reduce the text

* version update

* skill version

* skill description update

* reduce text size

* 1.0.4 for next prepare version

* upload snap shot

* update version

* test update

---------

Co-authored-by: Yinghui Dong <yinghuidong@microsoft.com>

* build(deps-dev): bump simple-git from 3.30.0 to 3.32.3 in /tests (microsoft#1213)

Bumps [simple-git](https://github.com/steveukx/git-js/tree/HEAD/simple-git) from 3.30.0 to 3.32.3.
- [Release notes](https://github.com/steveukx/git-js/releases)
- [Changelog](https://github.com/steveukx/git-js/blob/main/simple-git/CHANGELOG.md)
- [Commits](https://github.com/steveukx/git-js/commits/simple-git@3.32.3/simple-git)

---
updated-dependencies:
- dependency-name: simple-git
  dependency-version: 3.32.3
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Improve azure-compliance invocation rate (microsoft#1214)

* Improve azure-compliance invocation rate

* Race condition free report writing

* Fix debug logging for report location

* Bump skill version

* Fix suffix base value

* fix

* llm judge model and eval group improvement

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Chris Harris <charris@microsoft.com>
Co-authored-by: JasonYeMSFT <chuye@microsoft.com>
Co-authored-by: xfz11 <81600993+xfz11@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Juan Ospina <70209456+jeo02@users.noreply.github.com>
Co-authored-by: Jon Gallant <2163001+jongio@users.noreply.github.com>
Co-authored-by: Wes Haggard <weshaggard@users.noreply.github.com>
Co-authored-by: Fan Yang <52458914+fanyang-mono@users.noreply.github.com>
Co-authored-by: rakal-dyh <33503911+rakal-dyh@users.noreply.github.com>
Co-authored-by: Yinghui Dong <yinghuidong@microsoft.com>

* fix: expose observe prompt optimization routing

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

# Conflicts:
#	tests/microsoft-foundry/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/foundry-agent/create/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/foundry-agent/deploy/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/foundry-agent/invoke/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/foundry-agent/observe/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/foundry-agent/trace/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/foundry-agent/troubleshoot/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/models/deploy/capacity/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/models/deploy/customize-deployment/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/models/deploy/deploy-model-optimal-region/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/models/deploy/deploy-model/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/resource/create/__snapshots__/triggers.test.ts.snap

* chore: drop issue triage token fallback

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* docs: simplify deploy P0 test case guidance

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore: align microsoft-foundry version

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Fix comments

* test: move eval-datasets invocation tests

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Fix comments

* bump version

* dataset fix (microsoft#9)

* dataset fix

* fix: restore foundry dataset guidance

Restore the explicit seed dataset registration guidance in the deploy skill and align dataset docs with the current evaluation_dataset_create MCP surface.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore: add codeowner for microsoft-foundry

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: address foundry PR review comments

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: normalize foundry dataset versioning docs

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Deduplicate Foundry dataset registration docs

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* use sdk for eval results

* Fix comments

* Align observe test with SDK guidance

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Remove redundant Foundry MCP tips

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Fix dataset manifest version examples

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix

* Align eval-datasets metadata docs

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Merge remote-tracking branch 'upstream/main'

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: XOEEst <18523445+XOEEst@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Chris Harris <charris@microsoft.com>
Co-authored-by: JasonYeMSFT <chuye@microsoft.com>
Co-authored-by: xfz11 <81600993+xfz11@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Juan Ospina <70209456+jeo02@users.noreply.github.com>
Co-authored-by: Jon Gallant <2163001+jongio@users.noreply.github.com>
Co-authored-by: Wes Haggard <weshaggard@users.noreply.github.com>
Co-authored-by: Fan Yang <52458914+fanyang-mono@users.noreply.github.com>
Co-authored-by: rakal-dyh <33503911+rakal-dyh@users.noreply.github.com>
Co-authored-by: Yinghui Dong <yinghuidong@microsoft.com>
Luffy Chen (XOEEst) added a commit that referenced this pull request Apr 30, 2026
* Fix Issue Triage workflow: add `github.token` fallback for missing `COPILOT_GITHUB_TOKEN` (#6)

* Initial plan

* Fix issue triage workflow: add github.token fallback for COPILOT_GITHUB_TOKEN

The Issue Triage workflow was failing at the secret validation step because
COPILOT_GITHUB_TOKEN was not configured. This adds github.token as a fallback
in all 4 places where COPILOT_GITHUB_TOKEN is used for authentication:
- agent job: validate-secret step and Execute step
- detection job: validate-secret step and Execute step

This is consistent with the existing fallback patterns in the workflow
(e.g., secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN || secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN)

Co-authored-by: XOEEst <18523445+XOEEst@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: XOEEst <18523445+XOEEst@users.noreply.github.com>

* Fix/observe deploy loop logic (#7)

* Fix broken auto-create evaluators step in deploy/observe loop

The 'Auto-create evaluators & evaluation dataset' step was being skipped
when the monolithic agent-observability-loop skill was split into separate
deploy and observe skills. Neither skill owned the auto-create step,
causing post-deploy users to jump directly to evaluation.

Changes:
- deploy.md: Replace generic 'set up evaluation?' prompt with automatic
  6-step evaluator & dataset creation matching the reference behavior
- observe.md: Add Loop Overview, fix entry points to route post-deploy
  users through auto-setup, add evaluator existence check
- deploy-and-setup.md: Make auto-create primary content, demote deploy
  section to prerequisites

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add content tests for observe/deploy loop logic

Tests verify:
- observe.md has Loop Overview, post-deploy entry points, evaluator
  existence checks, behavioral rules, and all reference files
- deploy.md has auto-create evaluators section that is automatic (not
  optional), includes evaluator categories, LLM-judge, artifact
  persistence, and routes to observe skill Step 2
- deploy-and-setup.md has auto-create as primary content with proper
  evaluator selection, dataset generation, and user prompt

49 tests total (29 observe + 20 deploy), all passing.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore: trigger CI checks

* Fix

* add local dataset gen enforcement

* Merge

* feat: prefer monitor_resource_log_query and local datasets

- Replace azure-kusto delegation with monitor_resource_log_query for
  App Insights KQL queries in trace.md and troubleshoot.md
- Mark evaluation_dataset_create as not available (MCP upload not ready)
- Replace server-side dataset sections with local JSONL workflow
- Update mcp-gap-analysis.md to reflect practical tool availability

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: make dataset upload restriction more agent-proof

- Add Do NOT section at top of trace-to-dataset.md (before Overview)
- Add behavioral rule #7 to eval-datasets.md: never upload to cloud
- Remove Option A/B structure; Step 4 is now local JSONL only
- Eliminates subtle strikethrough formatting that agents miss

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Fix link

* fix: make auto-create evaluators an explicit numbered step

- Hosted workflow: add Step 10 after Step 9 with DO NOT stop gate
- Prompt workflow: add Step 5 after Step 4 with DO NOT stop gate
- Both link to existing After Deployment section as implementation
- Prevents agents from treating evaluator setup as optional appendix

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* feat: add dataset update loop with optimization guardrails

- Add Dataset Update Loop (eval→compare→analyze→optimize→re-eval)
  to dataset-versioning.md after Creating a New Version
- Add guardrails: never remove dataset rows or weaken evaluators
  to recover scores after dataset expansion
- Add same guardrail to observe optimize-deploy.md Step 6
- Add behavioral rule #8 to eval-datasets.md

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: add subscription parameter warning to trace-related skills

Always pass subscription explicitly to Azure MCP tools like
monitor_resource_log_query — they don't extract it from resource IDs.
Added to trace.md, troubleshoot.md, and trace-to-dataset.md.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: make customEvents-to-traces eval correlation more obvious

- Add Key Concept section to trace-to-dataset.md explaining that
  eval results live in customEvents (not dependencies) and the
  join key is gen_ai.response.id
- Add table showing dependencies vs customEvents join pattern
- Cross-reference trace skill's eval-correlation.md from both
  trace-to-dataset.md and eval-datasets.md Related Skills

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: improve cross-references and add KQL parse_json warning

1. Add parse_json(customDimensions) warning to Do NOT section
2. Add Related References section with skill-root paths
3. Add skill-root path hints to all cross-skill links
4. Add observe + trace to SKILL.md sub-skill routing table

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: improve hosted agent KQL patterns and content extraction

- Add Hosted Agent Harvest template (requests→dependencies join)
- Fix Hosted Agent Attributes: appear on both requests and traces
- Add gen_ai.agent.name duality callout (Foundry name vs class name)
- Remove incorrect azure.ai.agentserver.agent_name fallback from dependencies queries
- Document gen_ai.input.messages/gen_ai.output.messages as content source
- Add operation_ParentId join example to Span Correlation section
- Update search-traces.md hosted agent query to use requests entry point

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: improve trace sub-skills for hosted agent KQL patterns

- search-traces: fix hosted agent query to group by operation_ParentId
- conversation-detail: add content extraction from invoke_agent spans
  (gen_ai.input.messages / gen_ai.output.messages)
- analyze-failures: add hosted agent gen_ai.agent.name duality warning
  and hosted agent variant query using requests→dependencies join
- analyze-latency: same hosted agent warning and variant query
- kql-templates: expand requests table description as preferred entry
  point; add gen_ai.input/output.messages to attributes table
- trace.md: reword rule 6 to clarify hosted vs prompt agent filtering

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: restore routing keywords and update trigger snapshots

- Add back critical routing keywords to SKILL.md description (578→779 chars):
  role assignment, permissions, capacity, region, deployment failure,
  AI Services, Cognitive Services, provision, knowledge index,
  monitoring, customize, onboard, availability
- Update trigger test snapshots for new keyword set (24 snapshots)
- Fix deploy trigger test: Docker IS our capability (remove false negative)
- Fix customize-deployment tests: ensure prompts have ≥2 keyword matches
- Fix deploy-model-optimal-region tests: use longer prompts for HA/PTU

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: add 'create AI Services' to description for resource/create test

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore: bump microsoft-foundry version to 1.0.2

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* feat(eval-datasets): enable Foundry dataset sync via MCP tools

- Add Step 5 (Sync to Foundry) to trace-to-dataset pipeline using
  evaluation_dataset_create with connectionName and project_connection tools
- Add server-side version discovery via evaluation_dataset_versions_get
- Add dual experiment types to dataset-comparison (agent vs dataset comparison)
- Update mcp-gap-analysis: mark resolved tools, update workarounds
- Add AzureBlob to project connections reference
- Bump microsoft-foundry version to 1.0.3
- Fix upstream section heading changes in unit tests
- Update trigger snapshots for upstream keyword changes

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* refactor(dataset-comparison): focus on dataset-version comparison only

Remove agent comparison experiment type from dataset-comparison flow.
Agent comparison belongs in the observe/eval loop, not the dataset skill.
Update all examples to use dataset versions as baseline/treatment.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Remove Playwright MCP server until skills require it (#1200)

* Collapse token analysis comment (#1147)

* update region-availability in prepare/validate/deploy skill (#1083)

* update region-availability in prepare/deploy skill

* update

* update

* fix

* update date

* Update plugin/skills/azure-deploy/references/region-availability.md

* fix ci failure

* bump version

* build(deps): bump @github/copilot and @github/copilot-sdk in /tests (#1201)

Bumps [@github/copilot](https://github.com/github/copilot-cli) to 1.0.2 and updates ancestor dependency [@github/copilot-sdk](https://github.com/github/copilot-sdk). These dependencies need to be updated together.

Updates `@github/copilot` from 0.0.414 to 1.0.2
- [Release notes](https://github.com/github/copilot-cli/releases)
- [Changelog](https://github.com/github/copilot-cli/blob/main/changelog.md)
- [Commits](github/copilot-cli@v0.0.414...v1.0.2)

Updates `@github/copilot-sdk` from 0.1.26 to 0.1.32
- [Release notes](https://github.com/github/copilot-sdk/releases)
- [Changelog](https://github.com/github/copilot-sdk/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/copilot-sdk/commits/v0.1.32)

---
updated-dependencies:
- dependency-name: "@github/copilot"
  dependency-version: 1.0.2
  dependency-type: indirect
- dependency-name: "@github/copilot-sdk"
  dependency-version: 0.1.32
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* specify application path in prompt (#1204)

* Add AVM (Azure Verified Modules) integration tests (#1171)

* Add AVM (Azure Verified Modules) integration tests

Add 3 integration tests validating the AVM module selection hierarchy
for Bicep infrastructure generation:

- avm-module-priority: Verifies AVM modules prioritized over non-AVM
- avm-fallback-behavior: Verifies fallback stays within AVM ecosystem
- avm-azd-pattern-preference: Verifies AZD pattern modules preferred

Tests validate that the azure-deploy skill enforces the mandatory
AVM selection order: Pattern modules > Resource modules > Utility
modules, and never falls back to non-AVM alternatives.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add output assertions to AVM integration tests

Address Copilot review feedback: add keyword-based output
assertions using getAllAssistantMessages/getAllToolText to
verify agent responses contain AVM hierarchy terms, not just
skill invocation. Includes non-AVM fallback negative check.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Strengthen AVM test output assertions per Copilot review

- Split keyword checks into critical-term + context assertions
- Add resource-before-utility ordering assertion for fallback test
- Expand non-AVM negative check to use regex patterns
- Require core keywords (avm+pattern, azd+pattern) explicitly

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: address Copilot round 3 — ordering assertions and context-aware non-AVM check

- Add hierarchy ordering assertion to test 1 (pattern before resource/utility)
- Make non-AVM detection context-aware: skip matches preceded by negation words
  (e.g., 'never fall back to non-AVM' is correct behavior, not a false positive)
- Add pattern-before-resource ordering assertion to test 3 (AZD pattern preference)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* refactor: move AVM integration tests to avm/ subdirectory

Move tests/azure-deploy/avm-integration.test.ts to
tests/azure-deploy/avm/integration.test.ts so the file matches the
**/integration.test.ts glob used by the custom ESLint rule
(integration-test-name) and follows the subdirectory convention
established by tests/microsoft-foundry/ (e.g. foundry-agent/).

Import paths updated from ../utils/ to ../../utils/ to reflect the
new depth.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: address round 4 Copilot review feedback

- Add 'fall back'/'fall-back' keyword variants for resilience
- Extend non-AVM negation check to also scan following context
- Use regex for AZD ordering assertion to match plural/prefixed variants

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Update github workflows to use best practices (#1149)

* Early terminate azure-deploy, azure-validate tests (#1205)

Add comment for early termination to help AI grader

* Replace script inline parameters with env var (#1209)

* Early terminate azure-deploy tests on deploy link (#1208)

* Early terminate azure-deploy tests on deploy link

* Fix lint issue

* Reduce char count of existing skills (#1210)

* Reduce char count of existing skills

* Update ci tests and snapshots

* Enhance benchmark ci run script (#1176)

* Add msbench_benchmarks repo clone to get model definition

* Remove unused vars

* Use mcp-pr repo before MI has access to msbench-benchmarks repo

* Address copilot feedback

* Change back to msbench-benchmarks repo

* Get ADO token for repo clone

* Fix line continuation character

* Add run for all interested models

* Extract run IDs

* Fix yaml format issue

* Schedule it to run nightly

* Address copilot feedbacks

* formalize .foundry and multi-environment support

* fix

* Feature/azure quotas (#1137)

* update for using azure-quotas in skill

* test update

* unit test update

* path update

* add skill in skills.json

* skills.json update

* reduce the text

* version update

* skill version

* skill description update

* reduce text size

* 1.0.4 for next prepare version

* upload snap shot

* update version

* test update

---------

Co-authored-by: Yinghui Dong <yinghuidong@microsoft.com>

* build(deps-dev): bump simple-git from 3.30.0 to 3.32.3 in /tests (#1213)

Bumps [simple-git](https://github.com/steveukx/git-js/tree/HEAD/simple-git) from 3.30.0 to 3.32.3.
- [Release notes](https://github.com/steveukx/git-js/releases)
- [Changelog](https://github.com/steveukx/git-js/blob/main/simple-git/CHANGELOG.md)
- [Commits](https://github.com/steveukx/git-js/commits/simple-git@3.32.3/simple-git)

---
updated-dependencies:
- dependency-name: simple-git
  dependency-version: 3.32.3
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Improve azure-compliance invocation rate (#1214)

* Improve azure-compliance invocation rate

* Race condition free report writing

* Fix debug logging for report location

* Bump skill version

* Fix suffix base value

* fix

* llm judge model and eval group improvement

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Chris Harris <charris@microsoft.com>
Co-authored-by: JasonYeMSFT <chuye@microsoft.com>
Co-authored-by: xfz11 <81600993+xfz11@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Juan Ospina <70209456+jeo02@users.noreply.github.com>
Co-authored-by: Jon Gallant <2163001+jongio@users.noreply.github.com>
Co-authored-by: Wes Haggard <weshaggard@users.noreply.github.com>
Co-authored-by: Fan Yang <52458914+fanyang-mono@users.noreply.github.com>
Co-authored-by: rakal-dyh <33503911+rakal-dyh@users.noreply.github.com>
Co-authored-by: Yinghui Dong <yinghuidong@microsoft.com>

* fix: expose observe prompt optimization routing

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

# Conflicts:
#	tests/microsoft-foundry/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/foundry-agent/create/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/foundry-agent/deploy/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/foundry-agent/invoke/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/foundry-agent/observe/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/foundry-agent/trace/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/foundry-agent/troubleshoot/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/models/deploy/capacity/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/models/deploy/customize-deployment/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/models/deploy/deploy-model-optimal-region/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/models/deploy/deploy-model/__snapshots__/triggers.test.ts.snap
#	tests/microsoft-foundry/resource/create/__snapshots__/triggers.test.ts.snap

* chore: drop issue triage token fallback

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* docs: simplify deploy P0 test case guidance

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore: align microsoft-foundry version

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Fix comments

* test: move eval-datasets invocation tests

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Fix comments

* bump version

* dataset fix (#9)

* dataset fix

* fix: restore foundry dataset guidance

Restore the explicit seed dataset registration guidance in the deploy skill and align dataset docs with the current evaluation_dataset_create MCP surface.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore: add codeowner for microsoft-foundry

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: address foundry PR review comments

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: normalize foundry dataset versioning docs

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Deduplicate Foundry dataset registration docs

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* use sdk for eval results

* Fix comments

* Align observe test with SDK guidance

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Remove redundant Foundry MCP tips

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Fix dataset manifest version examples

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix

* Align eval-datasets metadata docs

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Merge remote-tracking branch 'upstream/main'

* feat(microsoft-foundry): refresh agent evaluation workflows

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Enforce LF line endings for Markdown files

Windows clones with core.autocrlf=true convert SKILL.md to CRLF in the
working tree, breaking unit tests like airunway-aks-setup's
'frontmatter has no tabs' check whose regex (/^-{3}\n.../) does not
match across \r\n.

Forcing eol=lf for *.md keeps line endings consistent across platforms
and prevents test failures on Windows.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* docs(microsoft-foundry): rename "test suite" to "evaluation suite" and add regression purpose

Addresses PR #2092 review comments from @jongio:

1. Standardize terminology on "evaluation suite" to match the
   evaluationSuites[] schema field. Renames human-language "test suite"
   and "test-suite" mentions across deploy.md, observe.md, analyze-results.md,
   evaluate-step.md, compare-iterate.md, cicd-monitoring.md, and the
   agent-metadata-contract.md guidance section/heading.

2. Add `regression` to the `purpose` values table in
   agent-metadata-contract.md so the suggested values match the
   `trace-regression-suite` example (`purpose: regression`) and the
   analyze-results.md prioritization rule (`purpose=regression`).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* docs(microsoft-foundry): document metadata-file fallback when default is absent

Addresses PR #2092 Copilot review (#pullrequestreview-4195041793,
discussion r3159385842) by extending Workflow Rule #3 in
agent-metadata-contract.md to describe what happens when
.foundry/agent-metadata.yaml is missing:

- Use the only matching .foundry/agent-metadata.<env>.yaml sidecar
  when exactly one exists.
- Require the user to choose the metadata file when multiple sidecar
  files exist and no explicit file/path was provided.

Keeps the contract symmetric with Workflow Rule #2 (multiple agent
roots also require a user choice) and removes the previous ambiguity.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: XOEEst <18523445+XOEEst@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Chris Harris <charris@microsoft.com>
Co-authored-by: JasonYeMSFT <chuye@microsoft.com>
Co-authored-by: xfz11 <81600993+xfz11@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Juan Ospina <70209456+jeo02@users.noreply.github.com>
Co-authored-by: Jon Gallant <2163001+jongio@users.noreply.github.com>
Co-authored-by: Wes Haggard <weshaggard@users.noreply.github.com>
Co-authored-by: Fan Yang <52458914+fanyang-mono@users.noreply.github.com>
Co-authored-by: rakal-dyh <33503911+rakal-dyh@users.noreply.github.com>
Co-authored-by: Yinghui Dong <yinghuidong@microsoft.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants