sensei: align validation with agentskills.io specification#996
sensei: align validation with agentskills.io specification#996
Conversation
- Add missing name validation rules: no consecutive hyphens, no start/end hyphen, alphanumeric chars - Add Invalid score level for spec-failing names - Reference agentskills.io/specification as authoritative source throughout - Document optional spec fields (license, metadata, allowed-tools) and preserve-if-present policy - Add SKILL.md 500-line limit check from spec - Update scoring algorithm with isValidName function - Update LOOP.md SCORE step with full spec checks - Update README.md rule-based checks section Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Elevate license and metadata.version from preserve-only to strongly recommended - Report suggestions in summary when either field is missing - Add collectSuggestions() to scoring algorithm - Update frontmatter template to show license and version as defaults - Add SPEC RECOMMENDATIONS section to summary display format - Update High adherence example with license and metadata fields Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
🔍 Token Analysis Report
📊 Token Change ReportComparing Summary
Changed Files
📊 Token Limit Check ReportChecked: 391 files
|
| File | Tokens | Limit | Over By |
|---|---|---|---|
.github/skills/file-test-bug/SKILL.md |
613 | 500 | +113 |
.github/skills/sensei/README.md |
3530 | 1000 | +2530 |
.github/skills/sensei/SKILL.md |
2216 | 500 | +1716 |
.github/skills/sensei/references/EXAMPLES.md |
3328 | 1000 | +2328 |
.github/skills/sensei/references/LOOP.md |
3717 | 1000 | +2717 |
.github/skills/sensei/references/SCORING.md |
2521 | 1000 | +1521 |
.github/skills/sensei/references/TOKEN-INTEGRATION.md |
1094 | 1000 | +94 |
.github/skills/skill-authoring/SKILL.md |
732 | 500 | +232 |
plugin/skills/appinsights-instrumentation/SKILL.md |
952 | 500 | +452 |
plugin/skills/azure-ai/SKILL.md |
835 | 500 | +335 |
plugin/skills/azure-aigateway/SKILL.md |
6329 | 500 | +5829 |
plugin/skills/azure-compliance/SKILL.md |
1238 | 500 | +738 |
plugin/skills/azure-compliance/references/azqr-recommendations.md |
1447 | 1000 | +447 |
plugin/skills/azure-compliance/references/azqr-remediation-patterns.md |
1987 | 1000 | +987 |
plugin/skills/azure-compliance/references/azure-keyvault-expiration-audit.md |
1286 | 1000 | +286 |
plugin/skills/azure-compliance/references/azure-quick-review.md |
1268 | 1000 | +268 |
plugin/skills/azure-cost-optimization/SKILL.md |
3456 | 500 | +2956 |
plugin/skills/azure-deploy/SKILL.md |
961 | 500 | +461 |
plugin/skills/azure-deploy/references/pre-deploy-checklist.md |
1004 | 1000 | +4 |
plugin/skills/azure-deploy/references/troubleshooting.md |
1123 | 1000 | +123 |
plugin/skills/azure-diagnostics/SKILL.md |
876 | 500 | +376 |
plugin/skills/azure-kusto/SKILL.md |
2167 | 500 | +1667 |
plugin/skills/azure-messaging/SKILL.md |
857 | 500 | +357 |
plugin/skills/azure-messaging/references/service-troubleshooting.md |
1044 | 1000 | +44 |
plugin/skills/azure-observability/SKILL.md |
939 | 500 | +439 |
plugin/skills/azure-postgres/SKILL.md |
1519 | 500 | +1019 |
plugin/skills/azure-postgres/references/entra-rbac-overview.md |
1823 | 1000 | +823 |
plugin/skills/azure-postgres/references/group-sync.md |
1844 | 1000 | +844 |
plugin/skills/azure-postgres/references/permission-templates.md |
1647 | 1000 | +647 |
plugin/skills/azure-postgres/references/troubleshooting.md |
1959 | 1000 | +959 |
plugin/skills/azure-prepare/SKILL.md |
1545 | 500 | +1045 |
plugin/skills/azure-prepare/references/aspire.md |
2573 | 1000 | +1573 |
plugin/skills/azure-prepare/references/azure-context.md |
1019 | 1000 | +19 |
plugin/skills/azure-prepare/references/recipes/azd/aspire.md |
1289 | 1000 | +289 |
plugin/skills/azure-prepare/references/recipes/azd/azure-yaml.md |
1709 | 1000 | +709 |
plugin/skills/azure-prepare/references/recipes/azd/terraform.md |
2924 | 1000 | +1924 |
plugin/skills/azure-prepare/references/research.md |
1600 | 1000 | +600 |
plugin/skills/azure-prepare/references/runtimes/nodejs.md |
1508 | 1000 | +508 |
plugin/skills/azure-prepare/references/security.md |
1784 | 1000 | +784 |
plugin/skills/azure-prepare/references/services/functions/bicep.md |
1896 | 1000 | +896 |
plugin/skills/azure-prepare/references/services/functions/templates/SPEC-composable-templates.md |
6187 | 1000 | +5187 |
plugin/skills/azure-prepare/references/services/functions/templates/recipes/README.md |
1265 | 1000 | +265 |
plugin/skills/azure-prepare/references/services/functions/templates/recipes/common/uami-bindings.md |
1223 | 1000 | +223 |
plugin/skills/azure-prepare/references/services/functions/templates/recipes/composition.md |
3150 | 1000 | +2150 |
plugin/skills/azure-prepare/references/services/functions/templates/recipes/cosmosdb/README.md |
1467 | 1000 | +467 |
plugin/skills/azure-prepare/references/services/functions/templates/recipes/durable/README.md |
1149 | 1000 | +149 |
plugin/skills/azure-prepare/references/services/functions/templates/recipes/eventhubs/README.md |
1403 | 1000 | +403 |
plugin/skills/azure-prepare/references/services/functions/templates/recipes/mcp/source/java.md |
1312 | 1000 | +312 |
plugin/skills/azure-prepare/references/services/functions/templates/recipes/mcp/source/python.md |
1207 | 1000 | +207 |
plugin/skills/azure-prepare/references/services/functions/templates/recipes/mcp/source/typescript.md |
1075 | 1000 | +75 |
plugin/skills/azure-prepare/references/services/functions/templates/recipes/servicebus/README.md |
1171 | 1000 | +171 |
plugin/skills/azure-prepare/references/services/functions/templates/recipes/servicebus/source/dotnet.md |
1227 | 1000 | +227 |
plugin/skills/azure-prepare/references/services/functions/templates/recipes/sql/source/java.md |
1009 | 1000 | +9 |
plugin/skills/azure-prepare/references/services/functions/templates/recipes/sql/source/python.md |
1080 | 1000 | +80 |
plugin/skills/azure-prepare/references/services/functions/terraform.md |
2305 | 1000 | +1305 |
plugin/skills/azure-prepare/references/services/service-bus/patterns.md |
1010 | 1000 | +10 |
plugin/skills/azure-resource-lookup/SKILL.md |
1379 | 500 | +879 |
plugin/skills/azure-resource-lookup/references/azure-resource-graph.md |
1307 | 1000 | +307 |
plugin/skills/azure-resource-visualizer/SKILL.md |
2091 | 500 | +1591 |
plugin/skills/azure-storage/SKILL.md |
1092 | 500 | +592 |
plugin/skills/azure-storage/references/sdk-usage.md |
1096 | 1000 | +96 |
plugin/skills/azure-validate/SKILL.md |
734 | 500 | +234 |
plugin/skills/entra-app-registration/SKILL.md |
2055 | 500 | +1555 |
plugin/skills/entra-app-registration/references/api-permissions.md |
2545 | 1000 | +1545 |
plugin/skills/entra-app-registration/references/cli-commands.md |
2211 | 1000 | +1211 |
plugin/skills/entra-app-registration/references/console-app-example.md |
2752 | 1000 | +1752 |
plugin/skills/entra-app-registration/references/first-app-registration.md |
1846 | 1000 | +846 |
plugin/skills/entra-app-registration/references/oauth-flows.md |
2375 | 1000 | +1375 |
plugin/skills/entra-app-registration/references/troubleshooting.md |
1896 | 1000 | +896 |
plugin/skills/microsoft-foundry/SKILL.md |
1912 | 500 | +1412 |
plugin/skills/microsoft-foundry/foundry-agent/create/agent-framework/SKILL.md |
1671 | 500 | +1171 |
plugin/skills/microsoft-foundry/foundry-agent/create/agent-framework/references/debug-setup.md |
1689 | 1000 | +689 |
plugin/skills/microsoft-foundry/foundry-agent/deploy/deploy.md |
3295 | 1000 | +2295 |
plugin/skills/microsoft-foundry/foundry-agent/invoke/invoke.md |
1273 | 1000 | +273 |
plugin/skills/microsoft-foundry/foundry-agent/troubleshoot/troubleshoot.md |
1299 | 1000 | +299 |
plugin/skills/microsoft-foundry/models/deploy-model/SKILL.md |
1627 | 500 | +1127 |
plugin/skills/microsoft-foundry/models/deploy-model/capacity/SKILL.md |
1725 | 500 | +1225 |
plugin/skills/microsoft-foundry/models/deploy-model/customize/SKILL.md |
2220 | 500 | +1720 |
plugin/skills/microsoft-foundry/models/deploy-model/customize/references/customize-workflow.md |
1859 | 1000 | +859 |
plugin/skills/microsoft-foundry/models/deploy-model/preset/SKILL.md |
1212 | 500 | +712 |
plugin/skills/microsoft-foundry/models/deploy-model/preset/references/preset-workflow.md |
4252 | 1000 | +3252 |
plugin/skills/microsoft-foundry/models/deploy-model/preset/references/workflow.md |
1315 | 1000 | +315 |
plugin/skills/microsoft-foundry/project/create/create-foundry-project.md |
1218 | 1000 | +218 |
plugin/skills/microsoft-foundry/quota/references/ptu-guide.md |
1473 | 1000 | +473 |
plugin/skills/microsoft-foundry/quota/references/troubleshooting.md |
1807 | 1000 | +807 |
plugin/skills/microsoft-foundry/quota/references/workflows.md |
1614 | 1000 | +614 |
plugin/skills/microsoft-foundry/rbac/rbac.md |
1752 | 1000 | +752 |
plugin/skills/microsoft-foundry/references/sdk/foundry-sdk-py.md |
1888 | 1000 | +888 |
plugin/skills/microsoft-foundry/resource/create/create-foundry-resource.md |
1489 | 1000 | +489 |
plugin/skills/microsoft-foundry/resource/create/references/workflows.md |
1637 | 1000 | +637 |
.github/agents/SkillCreator.agent.md |
1044 | 1000 | +44 |
Consider moving content to
references/subdirectories.
Automated token analysis. See skill authoring guidelines for best practices.
There was a problem hiding this comment.
Pull request overview
This PR aligns sensei skill validation with the agentskills.io specification. The changes introduce stricter name validation rules, document optional spec fields that must be preserved, add size limit checks, and introduce an "Invalid" scoring level for skills that fail spec validation.
Changes:
- Added comprehensive name validation rules (no consecutive hyphens, no start/end hyphen, lowercase alphanumeric only) aligned with agentskills.io spec
- Introduced "Invalid" scoring level for skills failing spec validation as a fail-fast mechanism
- Documented optional spec fields (license, metadata, allowed-tools) that must be preserved during improvements
- Added size limit documentation (500 line recommendation, 1024 char description hard limit, compatibility field max 500 chars)
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
.github/skills/sensei/references/SCORING.md |
Added spec-aligned name validation rules, optional field preservation guidance, size limits table, and isValidName() function to scoring algorithm |
.github/skills/sensei/references/LOOP.md |
Updated SCORE step with spec-based validation checks, added line count check to TOKENS step |
.github/skills/sensei/SKILL.md |
Added "Invalid" score level, spec references throughout, documented optional fields in frontmatter template |
.github/skills/sensei/README.md |
Updated rule-based checks section with spec-aligned validation rules and size limits |
Comments suppressed due to low confidence (1)
.github/skills/sensei/references/SCORING.md:243
- The regex pattern
/^[a-z0-9][a-z0-9-]*[a-z0-9]$|^[a-z0-9]$/does not properly enforce "no consecutive hyphens" constraint. A name like "azure--deploy" would match the first alternative since[a-z0-9-]*allows any number of hyphens including consecutive ones. The consecutive hyphen check on line 244 is redundant if the regex was correct, but necessary because the regex is insufficient. Consider either:
- Using a negative lookahead in the regex to prevent consecutive hyphens:
/^[a-z0-9]([a-z0-9]|-(?!-))*[a-z0-9]$|^[a-z0-9]$/ - Or keep the current approach but add a comment explaining why the separate check on line 244 is necessary (the regex doesn't prevent consecutive hyphens)
score = "Medium"
Addresses review feedback — the scoring algorithm now returns Invalid if description exceeds the spec's 1024-character hard limit. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Review feedback addressed:
Fixed in 427fe7c — added a check for the 1024-character hard limit before the 150-char minimum check. The algorithm now returns |
The scoring algorithm pseudocode checked < 150 chars for Low but did not guard against exceeding the agentskills.io spec hard limit of 1024 chars. Added 'Invalid' level returned when description > 1024 characters. Addresses feedback from microsoft/GitHub-Copilot-for-Azure#996. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Aligns sensei validation with the agentskills.io specification. See commit message for details.
license— identifies the license applied to the skillmetadata.version— tracks the skill version for consumers