azure-kubernetes: add VPA and pod rightsizing routing triggers#2391
Open
gambtho wants to merge 3 commits into
Open
azure-kubernetes: add VPA and pod rightsizing routing triggers#2391gambtho wants to merge 3 commits into
gambtho wants to merge 3 commits into
Conversation
The integration test 'invokes azure-kubernetes skill for pod rightsizing prompt' has been flaky (0.2 invocation rate vs 0.8 threshold). The prompt 'Rightsize AKS pod resource requests/limits using VPA recommendations' was routing to azure-compute or azure-documentation in 4 of 5 runs because the azure-kubernetes WHEN clause did not list the specific VPA and pod-resource vocabulary that the prompt uses. Add explicit triggers so routing is deterministic: - rightsize AKS pods (plural) - pod rightsizing - over-provisioned pods - pod resource requests and limits - container CPU and memory requests - Vertical Pod Autoscaler, VPA, VPA recommendations - kubectl top pods No terms are removed; azure-compute already does not mention AKS, pods, or rightsizing, so there is no collision to clear on that side. The change only sharpens azure-kubernetes' WHEN clause. Refs: #2372
Contributor
There was a problem hiding this comment.
Pull request overview
Updates the azure-kubernetes skill’s frontmatter routing triggers to more reliably route AKS pod rightsizing / VPA prompts to the correct skill (addressing the flaky invocation behavior described in #2372).
Changes:
- Expands the
azure-kubernetesdescriptionWHEN-clause triggers to include VPA / Vertical Pod Autoscaler and pod rightsizing vocabulary. - Adds additional related trigger phrases (plural “AKS pods”, “kubectl top pods”, requests/limits wording) to better match integration-test prompts.
The previous revision pushed the formatted skill description total over the 20000-char Copilot CLI budget by 54 chars and stale-dated the triggers snapshot. This change: - Drops the lower-value duplicate phrasing (the singular form 'rightsize AKS pod' is already covered by the plural; 'container CPU and memory requests' is covered by 'pod resource requests and limits'; 'VPA' and 'kubectl top pods' are redundant with 'Vertical Pod Autoscaler' and 'over-provisioned pods'). - Refreshes tests/azure-kubernetes/__snapshots__/triggers.test.ts.snap for the new description text and the new extracted keywords (autoscaler, limits, over-provisioned, pods, recommendations, requests, resource, rightsizing, vertical). Refs: #2372
Contributor
Details# 🔍 Token Analysis Report
📊 Token Change ReportComparing Summary
Changed Files
📊 Token Limit Check ReportChecked: 665 files
|
| File | Tokens | Limit | Over By |
|---|---|---|---|
.github/skills/analyze-skill-issues/SKILL.md |
2109 | 500 | +1609 |
.github/skills/analyze-test-run/SKILL.md |
2471 | 500 | +1971 |
.github/skills/file-test-bug/SKILL.md |
628 | 500 | +128 |
.github/skills/sensei/README.md |
3531 | 2000 | +1531 |
.github/skills/sensei/SKILL.md |
3026 | 500 | +2526 |
.github/skills/sensei/references/EXAMPLES.md |
3701 | 2000 | +1701 |
.github/skills/sensei/references/LOOP.md |
4169 | 2000 | +2169 |
.github/skills/sensei/references/SCORING.md |
4299 | 2000 | +2299 |
.github/skills/skill-authoring/SKILL.md |
839 | 500 | +339 |
plugin/skills/airunway-aks-setup/SKILL.md |
1025 | 500 | +525 |
plugin/skills/appinsights-instrumentation/SKILL.md |
937 | 500 | +437 |
plugin/skills/azure-ai/SKILL.md |
820 | 500 | +320 |
plugin/skills/azure-aigateway/SKILL.md |
1261 | 500 | +761 |
plugin/skills/azure-aigateway/references/policies.md |
2342 | 2000 | +342 |
plugin/skills/azure-cloud-migrate/SKILL.md |
1085 | 500 | +585 |
plugin/skills/azure-cloud-migrate/references/services/container-apps/cloudrun-deployment-guide.md |
2029 | 2000 | +29 |
plugin/skills/azure-cloud-migrate/references/services/container-apps/deployment-guide.md |
2458 | 2000 | +458 |
plugin/skills/azure-cloud-migrate/references/services/container-apps/fargate-deployment-guide.md |
2587 | 2000 | +587 |
plugin/skills/azure-cloud-migrate/references/services/container-apps/spring-deployment-guide.md |
3871 | 2000 | +1871 |
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 |
1188 | 500 | +688 |
plugin/skills/azure-compute/SKILL.md |
1370 | 500 | +870 |
plugin/skills/azure-compute/workflows/essential-machine-management/references/emm-enable-flow.md |
2344 | 2000 | +344 |
plugin/skills/azure-compute/workflows/vm-recommender/vm-recommender.md |
2631 | 2000 | +631 |
plugin/skills/azure-compute/workflows/vm-troubleshooter/vm-troubleshooter.md |
2509 | 2000 | +509 |
plugin/skills/azure-cost/SKILL.md |
1980 | 500 | +1480 |
plugin/skills/azure-deploy/SKILL.md |
1645 | 500 | +1145 |
plugin/skills/azure-deploy/references/pre-deploy-checklist.md |
4692 | 2000 | +2692 |
plugin/skills/azure-deploy/references/recipes/azd/errors.md |
4004 | 2000 | +2004 |
plugin/skills/azure-deploy/references/troubleshooting.md |
2038 | 2000 | +38 |
plugin/skills/azure-diagnostics/SKILL.md |
1423 | 500 | +923 |
plugin/skills/azure-enterprise-infra-planner/SKILL.md |
1002 | 500 | +502 |
plugin/skills/azure-enterprise-infra-planner/references/constraints/compute-apps.md |
2022 | 2000 | +22 |
plugin/skills/azure-hosted-copilot-sdk/SKILL.md |
1332 | 500 | +832 |
plugin/skills/azure-kubernetes/SKILL.md |
2634 | 500 | +2134 |
plugin/skills/azure-kubernetes/azure-kubernetes-automatic-readiness/SKILL.md |
3609 | 500 | +3109 |
plugin/skills/azure-kusto/SKILL.md |
2152 | 500 | +1652 |
plugin/skills/azure-messaging/SKILL.md |
821 | 500 | +321 |
plugin/skills/azure-prepare/SKILL.md |
3375 | 500 | +2875 |
plugin/skills/azure-prepare/references/aspire.md |
4617 | 2000 | +2617 |
plugin/skills/azure-prepare/references/plan-template.md |
2560 | 2000 | +560 |
plugin/skills/azure-prepare/references/recipes/azd/aspire.md |
2275 | 2000 | +275 |
plugin/skills/azure-prepare/references/recipes/azd/terraform.md |
3555 | 2000 | +1555 |
plugin/skills/azure-prepare/references/research.md |
2274 | 2000 | +274 |
plugin/skills/azure-prepare/references/resources-limits-quotas.md |
3322 | 2000 | +1322 |
plugin/skills/azure-prepare/references/security.md |
2147 | 2000 | +147 |
plugin/skills/azure-prepare/references/services/functions/bicep.md |
3043 | 2000 | +1043 |
plugin/skills/azure-prepare/references/services/functions/templates/recipes/composition.md |
2813 | 2000 | +813 |
plugin/skills/azure-prepare/references/services/functions/terraform.md |
3404 | 2000 | +1404 |
plugin/skills/azure-quotas/SKILL.md |
2821 | 500 | +2321 |
plugin/skills/azure-quotas/references/commands.md |
2644 | 2000 | +644 |
plugin/skills/azure-reliability/SKILL.md |
5659 | 500 | +5159 |
plugin/skills/azure-reliability/references/configure-multi-region.md |
4729 | 2000 | +2729 |
plugin/skills/azure-resource-lookup/SKILL.md |
1367 | 500 | +867 |
plugin/skills/azure-resource-visualizer/SKILL.md |
2122 | 500 | +1622 |
plugin/skills/azure-storage/SKILL.md |
1228 | 500 | +728 |
plugin/skills/azure-upgrade/SKILL.md |
1542 | 500 | +1042 |
plugin/skills/azure-upgrade/references/languages/java/INSTRUCTION.md |
2724 | 2000 | +724 |
plugin/skills/azure-upgrade/references/languages/java/package-specific/com.microsoft.azure.management.md |
2215 | 2000 | +215 |
plugin/skills/azure-upgrade/references/languages/java/templates/PLAN_TEMPLATE.md |
2411 | 2000 | +411 |
plugin/skills/azure-upgrade/references/languages/java/templates/PROGRESS_TEMPLATE.md |
2315 | 2000 | +315 |
plugin/skills/azure-upgrade/references/languages/java/templates/SUMMARY_TEMPLATE.md |
2190 | 2000 | +190 |
plugin/skills/azure-upgrade/references/services/functions/automation.md |
3463 | 2000 | +1463 |
plugin/skills/azure-upgrade/references/services/functions/consumption-to-flex.md |
2773 | 2000 | +773 |
plugin/skills/azure-validate/SKILL.md |
950 | 500 | +450 |
plugin/skills/entra-agent-id/SKILL.md |
4001 | 500 | +3501 |
plugin/skills/entra-app-registration/SKILL.md |
2070 | 500 | +1570 |
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 |
4134 | 500 | +3634 |
plugin/skills/microsoft-foundry/finetuning/SKILL.md |
1375 | 500 | +875 |
plugin/skills/microsoft-foundry/foundry-agent/create/create-hosted.md |
4824 | 2000 | +2824 |
plugin/skills/microsoft-foundry/foundry-agent/deploy/deploy.md |
8432 | 2000 | +6432 |
plugin/skills/microsoft-foundry/foundry-agent/deploy/references/direct-code-deployment.md |
3690 | 2000 | +1690 |
plugin/skills/microsoft-foundry/foundry-agent/eval-datasets/eval-datasets.md |
2846 | 2000 | +846 |
plugin/skills/microsoft-foundry/foundry-agent/eval-datasets/references/generate-seed-dataset.md |
2185 | 2000 | +185 |
plugin/skills/microsoft-foundry/foundry-agent/eval-datasets/references/trace-to-dataset.md |
4325 | 2000 | +2325 |
plugin/skills/microsoft-foundry/foundry-agent/faos-optimize/faos-optimize.md |
3573 | 2000 | +1573 |
plugin/skills/microsoft-foundry/foundry-agent/invoke/invoke.md |
2058 | 2000 | +58 |
plugin/skills/microsoft-foundry/foundry-agent/observe/observe.md |
3585 | 2000 | +1585 |
plugin/skills/microsoft-foundry/foundry-agent/observe/references/continuous-eval.md |
3860 | 2000 | +1860 |
plugin/skills/microsoft-foundry/foundry-agent/observe/references/evaluate-step.md |
2174 | 2000 | +174 |
plugin/skills/microsoft-foundry/foundry-agent/observe/references/evaluation-suite-generation.md |
2663 | 2000 | +663 |
plugin/skills/microsoft-foundry/foundry-agent/trace/references/kql-templates.md |
2701 | 2000 | +701 |
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 |
2288 | 2000 | +288 |
plugin/skills/microsoft-foundry/quota/references/capacity-planning.md |
2080 | 2000 | +80 |
plugin/skills/microsoft-foundry/references/agent-metadata-contract.md |
3114 | 2000 | +1114 |
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.
The previous push added 'pods' (plural) to azure-kubernetes' WHEN clause. The triggers test extracts every word > 3 chars from the description as a keyword, so 'pods' became a routable token. That broke the anti-trigger assertion for the prompt 'Troubleshoot why pods in my AKS cluster are crashlooping', which is meant to route to azure-diagnostics — with both 'aks' and 'pods' matching, the two-keyword threshold tripped. Use the singular 'pod' everywhere in the description. The keyword extractor filters words of length <= 3 (apart from a hardcoded 'ai' exception), so 'pod' contributes no new routing token, while the human-readable triggers still cover the VPA / rightsizing prompts the integration tests exercise. Replace 'over-provisioned pods' with 'over-provisioned AKS pod' so the phrase still reads naturally without the plural. Snapshot updated to match (description text refreshed, 'pods' removed from both keyword arrays). Refs: #2372
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
azure-kubernetes(issue Integration test failure: azure-kubernetes – pod rightsizing routing to azure-compute [Skill not invoked] #2372): the integration test was hitting a 20% invocation rate against an 0.8 threshold because the test prompt's vocabulary (VPA,pod resource requests/limits,over-provisioned) was not in the skill's WHEN clause, so the agent was falling through toazure-computeorazure-documentation.azure-kubernetesSKILL.md description: VPA / Vertical Pod Autoscaler, pod rightsizing, over-provisioned pods, pod resource requests and limits, container CPU/memory requests, kubectl top pods, pluralAKS pods."rightsize AKS pod"fromazure-compute, but inspection showsazure-compute's description has no AKS / pod / rightsize vocabulary at all — there is no collision on that side to clear. The real gap was missing positive triggers onazure-kubernetes.Why this should work
The failing test prompt is "My AKS pods are over-provisioned, how do I rightsize them?" and the VPA test prompt is "How do I enable Vertical Pod Autoscaler on AKS to get rightsizing recommendations?". The original WHEN clause only contained the singular
rightsize AKS podand no VPA tokens, so the prompt's strongest content words (VPA,over-provisioned,pod resource requests) had nothing to bind to inazure-kubernetes. The expanded WHEN clause covers every meaningful phrase in both test prompts.Test plan
azure-kubernetesintegration suite (5 samples per case) and the pod-rightsizing + VPA invocation rates clear 0.8.Refs: #2372